title: Clojure clojure.lang.LazySeq errors
body: <p>I seem to have nasty problem with clojure I/O (or typesystem). The point is that this function, which I expect to consume collection of collections of strings and numbers or strings, and returns dictionary of strings associated with numbers, like</p>
  
  <pre><code>(costlist '( '("Milk" 4) '("Bread" 2) '("Milk")))
  </code></pre>
  
  <p>giving </p>
  
  <p><code>{"Milk" 4, "Bread" 2 }</code></p>
  
  <p>Defined by</p>
  
  <pre><code>(defn costlist [lst]
      ;returns list of costs and appropriate names
            (let  [snds (filter (fn [x] (not (identical? nil x))) (seconds lst))]
            (zipmap 
                     (firsts (take (count snds) (firsts lst))) 
                     (snds  lst))))
  </code></pre>
  
  <p>when consuming lists of type clojure.lang.PersistentList (which I converted from clojure.lang.LazySeq) throws error message</p>
  
  <pre><code>clojure.lang.LazySeq cannot be cast to clojure.lang.IFn
  </code></pre>
  
  <p>Which only confuses me, as any of its arguments don't seem to be LazySeq to me.</p>