     >string ; inline
 
 M: growable stream-read1 [ f ] [ pop ] if-empty ;
-
-: harden-as ( seq growble-exemplar -- newseq )
-    underlying>> like ;
-
-: growable-read-until ( growable n -- str )
-    >fixnum dupd tail-slice swap harden-as dup reverse-here ;
 
 : find-last-sep ( seq seps -- n )
     swap [ memq? ] curry find-last drop ;

strings generic splitting continuations destructors
io.streams.plain io.encodings math.order growable ;
IN: io.streams.string

M: growable dispose drop ;


M: growable stream-read-partial
    stream-read ;

: <string-reader> ( str -- stream )
    >sbuf dup reverse-here null-encoding <decoder> ;

: with-string-reader ( str quot -- )
    >r <string-reader> r> with-input-stream ; inline

INSTANCE: growable plain-writer

M: plain-writer stream-write-table
    [ drop format-table [ print ] each ] with-output-stream* ;

