   (defn- queue-reader
     "Make a lazy sequence from a queue, stopping upon reading the unique
     end-marker object."
-    [q]
+    [^LinkedBlockingQueue q]
     (lazy-seq
       (let [x (.take q)]
         (when-not (identical? x end-marker)

  [pool]
  (cond
    (instance? java.util.concurrent.ScheduledThreadPoolExecutor pool)
    (.getCorePoolSize pool)

    (instance? java.util.concurrent.ThreadPoolExecutor pool)
    (.getMaximumPoolSize pool)

    :else
    nil))


  (defn queue-seq-add!
    "Add an item to a queue (and its lazy sequence)."
    [^LinkedBlockingQueue q x]
    (.add q x))

  (defn queue-seq-end!
