Ok, concrete. Here's one mistake I made the other day. I created a ref, and then forgot to access it using @. The example code is
(def my_map (ref {:a 1, :b 2})) (def map_vals (vals my_map)) $ java -cp clojure-clean.jar clojure.lang.Repl bad-ref.clj java.lang.IllegalArgumentException: Don't know how to create ISeq from: Ref at clojure.lang.RT.seqFrom(RT.java:465) at clojure.lang.RT.seq(RT.java:448) at clojure.lang.RT.vals(RT.java:473) at clojure.vals__470.invoke(boot.clj:893) at clojure.lang.AFn.applyToHelper(AFn.java:184) at clojure.lang.AFn.applyTo(AFn.java:175) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2589) at clojure.lang.Compiler$DefExpr.eval(Compiler.java:282) at clojure.lang.Compiler.eval(Compiler.java:3896) at clojure.lang.Compiler.load(Compiler.java:4192) at clojure.lang.Compiler.loadFile(Compiler.java:4159) at clojure.lang.Repl.main(Repl.java:48) And then here's the stack trace from the real code: java.lang.IllegalArgumentException: Don't know how to create ISeq from: Ref at clojure.lang.RT.seqFrom(RT.java:465) at clojure.lang.RT.seq(RT.java:448) at clojure.lang.RT.vals(RT.java:473) at clojure.vals__470.invoke(boot.clj:893) at clojure.lang.AFn.applyToHelper(AFn.java:184) at clojure.lang.AFn.applyTo(AFn.java:175) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2589) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2588) at clojure.lang.Compiler$InvokeExpr.eval(Compiler.java:2588) at clojure.lang.Compiler$DefExpr.eval(Compiler.java:282) at clojure.lang.Compiler.eval(Compiler.java:3896) at clojure.lang.Compiler.load(Compiler.java:4196) at clojure.lang.RT.loadResourceScript(RT.java:360) at clojure.lang.RT.loadResourceScript(RT.java:347) at clojure.lang.RT.loadResourceScript(RT.java:339) at clojure.load__1722$fn__1724.invoke(boot.clj:3195) at clojure.load__1722.doInvoke(boot.clj:3194) at clojure.lang.RestFn.invoke(RestFn.java:413) at clojure.load_one__1685.invoke(boot.clj:3041) at clojure.load_lib__1705.doInvoke(boot.clj:3078) at clojure.lang.RestFn.applyTo(RestFn.java:147) at clojure.apply__135.doInvoke(boot.clj:364) at clojure.lang.RestFn.invoke(RestFn.java:443) at clojure.load_libs__1709.doInvoke(boot.clj:3104) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.apply__135.doInvoke(boot.clj:364) at clojure.lang.RestFn.invoke(RestFn.java:443) at clojure.require__1713.doInvoke(boot.clj:3163) at clojure.lang.RestFn.invoke(RestFn.java:413) at user.eval__3155.invoke(start.clj:5) at clojure.lang.Compiler.eval(Compiler.java:3891) at clojure.lang.Compiler.load(Compiler.java:4196) at clojure.lang.Compiler.loadFile(Compiler.java:4163) at clojure.lang.Repl.main(Repl.java:48) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25) at java.lang.reflect.Method.invoke(Method.java:585) at jline.ConsoleRunner.main(ConsoleRunner.java:69) Clojure user=> The real code is complicated by the fact that I required several files. If you pay attention to the stack trace, you see that the code entered at start.clj. Then three files were required, but you can't tell which file or line blew up. --~--~---------~--~----~------------~-------~--~----~ 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 To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---