A LineWr.T, or line writer, is a writer that passes its
   buffer, a line at a time, to a user supplied procedure.
   Line writers are unbuffered, unseekable, and never raise
   Failure or Alerted. 
INTERFACEThe callLineWr ; IMPORT Wr, Thread; TYPE T <: Public; Public = Wr.T OBJECT METHODS init (proc: CallBack; ref: REFANY): T; END; CallBack = PROCEDURE (ref: REFANY; line: TEXT) RAISES {Wr.Failure, Thread.Alerted};
wr.init(p,r) initializes wr to be a line writer with
   an empty buffer that will call p(r,buf) for each line of data
   put into the buffer.  Carriage return and linefeed characters
   will be stripped from the data passed to p. 
PROCEDURE New (proc: CallBack; ref: REFANY): T;
 Equivalent to NEW(T).init(proc,ref). PROCEDURE Clear (t: T);
== Wr.Flush (t) without raising exceptions
END LineWr.