Nicolas Petton writes: > If we accept that `seq-elt', and other positional functions of seq.el > should not work on streams, then I could rewrite stream.el to make it a > positioned stream where previous elements are discarded after each > element generation. However the list of supported functions from seq.el > API would be significantly reduced. I had something like the following in mind: (cl-defstruct nstream current next-function) (cl-defmethod nstream-next ((stream nstream)) (setf (nstream-current stream) (funcall (nstream-next-function stream) (nstream-current stream)))) (defun nstream-range (&optional start end step) (unless start (setq start 0)) (unless step (setq step 1)) (make-nstream :current start :next-function (lambda (cur) (if (equal cur end) nil (+ cur step))))) Cheers, Nico