-M: growable stream-read1 [ f ] [ pop ] if-empty ;
-
-: find-last-sep ( seq seps -- n )
- swap [ memq? ] curry find-last drop ;
-
-M: growable stream-read-until
- [ find-last-sep ] keep over [
- [ swap 1+ growable-read-until ] 2keep [ nth ] 2keep
- set-length
- ] [
- [ swap drop 0 growable-read-until f like f ] keep
- delete-all
- ] if ;