store/[org.clojure/clojure "1.8.0"] clj::clojure.core/defn-

Official Documentation

Add notes
Arities
==================================================
   [name & decls]

Docstring
==================================================
  same as defn, yielding non-public def

Source

(defmacro defn-
  "same as defn, yielding non-public def"
  {:added "1.0"}
  [name & decls]
    (list* `defn (with-meta name (assoc (meta name) :private true)) decls))

Example 1

Edit
(ns test)
;; => nil

(defn- foo []
  "World!")
;; => #'test/foo

(defn bar []
  (str "Hello " (foo)))
;; => #'test/bar

(foo)
;; => "World!"

(bar)
;; => "Hello World!"

(ns playground)
;; => nil

(test/bar)
;; => "Hello World!"

(test/foo)
;; => Error: var: #'test/foo is not public

Uses on crossclj