user=> (eval `'())
()
user=> `'~(map identity ())
(quote ())
user=> (eval `'~(map identity ())) ;; expected: ()
CompilerException java.lang.UnsupportedOperationException: Unknown Collection type, compiling:(NO_SOURCE_PATH:5:1)
user=> (prn *e)
#error {
:cause "Unknown Collection type"
:via
[{:type clojure.lang.Compiler$CompilerException
:message "java.lang.UnsupportedOperationException: Unknown Collection type, compiling:(NO_SOURCE_PATH:5:1)"
:at [clojure.lang.Compiler analyzeSeq "Compiler.java" 6730]}
{:type java.lang.UnsupportedOperationException
:message "Unknown Collection type"
:at [clojure.lang.Compiler$EmptyExpr emit "Compiler.java" 2929]}]
:trace
[[clojure.lang.Compiler$EmptyExpr emit "Compiler.java" 2929]
[clojure.lang.Compiler$BodyExpr emit "Compiler.java" 5905]
[clojure.lang.Compiler$FnMethod doEmit "Compiler.java" 5453]
[clojure.lang.Compiler$FnMethod emit "Compiler.java" 5311]
[clojure.lang.Compiler$FnExpr emitMethods "Compiler.java" 3843]
[clojure.lang.Compiler$ObjExpr compile "Compiler.java" 4489]
[clojure.lang.Compiler$FnExpr parse "Compiler.java" 3983]
[clojure.lang.Compiler analyzeSeq "Compiler.java" 6721]
[clojure.lang.Compiler analyze "Compiler.java" 6524]
[clojure.lang.Compiler eval "Compiler.java" 6779]
[clojure.lang.Compiler eval "Compiler.java" 6745]
[clojure.core$eval invoke "core.clj" 3081]
;; elided rest
nil
user=> (eval `'~(map identity '(x)))
(x)
*Cause:* In the empty list case, the compiler here sees a LazySeq. I suspect something earlier in the stack should be producing an empty list instead, but haven't tracked it back yet.