What does 'java.lang.ClassCastException: clojure.lang.Var$Unbound cannot be cast to clojure.lang.IDeref' mean. I'm getting this a lot and I want to understand it better, make it easier for me to avoid this. Most of the time I just end up adjusting my def/defn's around until it works. This is hardly optimal.
(this is all on clojure 1.3.0) An example... (ns app-admin.models.current-user (:require [noir.session :as session] [app-admin.models.users :as users])) (def get-id (session/get :uid)) (defn set-user! [user] (session/put! :uid {:_id user})) Give me an exception for get-id ClassCastException clojure.lang.Var$Unbound cannot be cast to clojure.lang.IDeref clojure.core/deref (core.clj:2078) So set-user! binds correctly, but get-id doesn't seem to... => (get-id) llegalStateException Attempting to call unbound fn: #'app-admin.models.current-user/get-id clojure.lang.Var$Unbound.throwArity (Var.java:43) Then I check it... => (meta #'get-id) {:ns #<Namespace app-admin.models.current-user>, :name get-id} So it's there, the fn is bound; I'm not exactly sure what's going on and nor what I'm missing about how this works to help me avoid problems like this in future. Just guessing and tweaking has gotten me so far, but that's not sustainable. Thanks! -Travis -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en