<> <> DIRECTORY IO USING [STREAM], Rope USING [ROPE], ViewerClasses USING [Viewer]; ViewerIO: CEDAR DEFINITIONS = BEGIN OPEN IO, Rope, ViewerClasses; CreateViewerStreams: PROC [name: ROPE, viewer: Viewer _ NIL, backingFile: ROPE _ NIL, editedStream: BOOL _ TRUE] RETURNS [in: STREAM, out: STREAM]; <<>> <> <> <> <> <> <, echoTo: out]. Otherwise, out is established as an echo stream for in via EditedStream.SetEcho[in, out].>> <<>> GetViewerFromStream: PROC [stream: STREAM] RETURNS [Viewer]; <> CreateMessageWindowStream: PROC RETURNS [STREAM]; <> END.