Michael Heerdegen writes: Hi Michael, > [...] > +(cl-defmethod seq-mapn (function (stream stream) &rest streams) > + "Map FUNCTION over the STREAMS. I would add to the docstring that all elements of `streams' should be streams, otherwise it will default to the generic implementation. > + > +Example: this prints the first ten Fibonacci numbers: > + > + (letrec ((fibs (stream-cons > + 1 > + (stream-cons > + 1 > + (seq-mapn #'+ fibs (stream-rest fibs)))))) > + (seq-do #'print (seq-take fibs 10))) > + > +\(fn FUNCTION STREAMS...)" > + (if (not (cl-every #'streamp streams)) ^^^^^^^^ Since this is for stream.el, why not use `seq-every-p'? > + (cl-call-next-method) > + (cl-callf2 cons stream streams) > + (stream-make > + (unless (cl-some #'seq-empty-p streams) ^^^^^^^ Same question :-) > [...] > (1) Is it ok to implement it with `cl-call-next-method' this way? I guess it is. Have you tried running `seq-mapn' with a mix of streams and lists? Cheers, Nico