 
 M: lazy-from-by cdr ( lazy-from-by -- cdr )
   [ lazy-from-by-n ] keep
-  lazy-from-by-quot dup >r call r> lfrom-by ;
+  lazy-from-by-quot dup slip lfrom-by ;
 
 M: lazy-from-by nil? ( lazy-from-by -- bool )
   drop f ;

    [ lazy-io-stream ] keep
    [ lazy-io-quot ] keep
    car [
      >r f f r> <lazy-io> [ swap set-lazy-io-cdr ] keep
    ] [
      3drop nil
    ] if

  swap [ cdr ] times car ;

: (llength) ( list acc -- n )
  over nil? [ nip ] [ [ cdr ] dip 1+ (llength) ] if ;

: llength ( list -- n )
  0 (llength) ;
