There are too many things on the mailing lists to see if it is already mentioned, i hope i am not being redundant.
If you write (iter (for el in 'a) (collect el)), it just returns nil. This can lead to confusing bugs, as people are used to CL telling you something is not a valid argument. I suggest having it check that the argument type is correct, by either using CLs functions or looking for it. (Also for vectors and such.) It may affect performence though, maybe use a defvar/parameter to turn it on/off, or maybe you can use the safety declaration?
Btw, i made a a little other approachhttp://lisp-umac.berlios.de/umac.html, but i think the iterate approach is better. (Oops the autodocumentation link is broken, the one in the menu works though.)
Thanks for the great tool, Jasper
see my past proposal on the list with the subject "*list-end-test*".
(iter (for x :in #(1 2 3)) ...) bit me a few times, but iirc the conclusion was to leave it as is (which may not be the best solution as this new proposal shows, but i don't remember the details).