 (defmacro generate-by
   "Colletcs all values \"yield\"ed by the function. The definition of
   function may use the special function \"yield\" with an additional
-  argument. All these values are than collected into a lazy sequence[1].
+  argument. All these values are than collected into a lazy sequence.
 
   Example:
 

  calls."
  [function]
  `(fn [& args#]
     (let [#^SynchronousQueue queue# (SynchronousQueue.),
	   end# (atom false),
	   eos# (Object.)]
       (letfn [(~(symbol "yield") [x#] (.put queue# x#))]
	 (.start (Thread. (fn []
			    (apply ~function args#)
			    (.put queue# eos#))))
	 (fn []
	   (let [next# (if @end#
			 eos#
			 (let [new# (.take queue#)]
			   (if (= new# eos#)
			     (reset! end# true))
			   new#))]

                 5)
    -> ()

  "
  [function & args]
  `(generate ((make-generator ~function) ~@args)))
