What if it isn't inside a constant?
user=> (eval `(fn [] ~#'x))
#<user$eval1366$fn__1367 user$eval1366$fn__1367@15dbb76>
user=> (with-local-vars [x nil] (eval `(fn [] ~x)))
CompilerException java.lang.NullPointerException, compiling:(NO_SOURCE_PATH:1:1)
How about functions? These are unreadable but they still eval
correctly inside constants.
user=> (letfn [(x [] nil)] (eval x))
#<user$eval1377$x__1378 user$eval1377$x__1378@5fea6729>
user=> (letfn [(x [] nil)] (eval [x]))
[#<user$eval1381$x__1382 user$eval1381$x__1382@e3b7c27>]
user=> (read-string "#<user$x user$x@1981e4d>")
RuntimeException Unreadable form clojure.lang.Util.runtimeException
(Util.java:219)
user=> (defn x [] nil)
#'user/x
user=> (eval x)
#<user$x user$x@14ff1714>
user=> (eval [x])
[#<user$x user$x@5892d4a8>]
user=> (read-string "#<user$eval1381$x__1382 user$eval1381$x__1382@e3b7c27>")
RuntimeException Unreadable form clojure.lang.Util.runtimeException
(Util.java:219)