(defn fix [f]
  (let [p (promise)]
    (deliver p (f p))
    @p))