The destructuring of (let [[x] [1 2 3]] x) is type checked differently to
(first [1 2 3]), the former being a type error.
Already fixed sometime around 0.1.18, but adding tests to prove this works.
Re: Why (first [1 2 3]) isn't equivalent to (let [[x & xs] [1 2 3]] x)
; This is because clojure.lang.RT/nth's type doesn't currently allow nil as
; the first argument. Should be fixed in master, but please submit a bug report to
; JIRA, it might not be completely correct.
I'm not sure if this is fixed in master, but I couldn't build the current 0.1.18-SNAPSHOT (master) to check.