This simple little tweak lets you create functions which show nice representations when printed rather than just their compiled class.
Which is nicer, be honest:
;; raw Clojure behaviour
user> (fn [x] (inc (inc x)))
#<user$eval__1750$fn__1751 user$eval__1750$fn__1751@927e4be>
;; with serializable-fn
user> (require '[serializable.fn :as s])
user> (def dinc (s/fn [x] (inc (inc x))))
(fn [x] (inc (inc x)))
user> ((eval (read-string (pr-str dinc))) 0)
2
user> ^ niiiiiiiiiiiiice!
Copyright © 2010-2012 Seajure, The Seattle Clojure group and contributors
Distributed under the Eclipse Public License 1.0 as well as the Apache License 2.0.