 (alter-meta! #'->FakeReturnValue assoc :no-doc true)
 
 ;;;;;;;;;;;;;;;;;;;;;;;; Fakes - API
-(defn ^:no-doc -position
-  "Returns a position of the specified fake. Does not yet work for optional fakes."
-  [ctx f]
-  {:pre [ctx f]}
-  (get (:positions @ctx) f))
-
 (def default-fake-config
   "With this config fake will return a new `FakeReturnValue` type instance for any combination of args."
   [any? (fn [& _] (FakeReturnValue.))])

  {:pre [ctx (fn? f)]}
  (swap! ctx update-in [:unused-fakes] #(remove #{f} %)))

(defn ^:no-doc -required
  [ctx position f]
  {:pre [ctx position (fn? f)]}
  (letfn [(wrapper [& args]
            (-mark-used ctx wrapper)
            (apply f args))]
    (swap! ctx assoc-in [:positions wrapper] position)
    (swap! ctx update-in [:unused-fakes] conj wrapper)
    wrapper))

(defn ^:no-doc -fake

                             method-full-sym
                             (str method-sym)))
           config (-add-any-first-arg-into-matchers config)]
       ; Descriptions are not set for :optional-fake and :-nice-fake because there's no need yet.
       (condp = fake-type
         :optional-fake
         (if config
