RefAnyStream: DEFINITIONS = { Handle: TYPE = REF Object; Object: TYPE = RECORD[ procs: ObjectProcsHandle, data: REF ANY _ NIL ]; ObjectProcsHandle: TYPE = REF ObjectProcs; ObjectProcs: TYPE = RECORD[ get: PROC[Handle] RETURNS[REF ANY], put: PROC[Handle, REF ANY], putBack: PROC[Handle, REF ANY], flush: PROC[Handle], close: PROC[Handle], endOf: PROC[Handle] RETURNS[BOOLEAN], empty: PROC[Handle] RETURNS[BOOLEAN] ]; Error: ERROR [ec: ErrorCode]; ErrorCode: TYPE = { NotImplementedForThisStream, EndOfStream, StreamClosed, BadIndex }; }. RefAnyStream.mesa: an interface for applications of a simple REF ANY stream abstraction Jlarson, July 10, 1985 3:54:59 pm PDT TYPEs ERRORs attempt to do a get at end of stream raised by operations after close (except flush, reset, close.) negative length or index to SetIndex Κ•˜Jšœ0™0šœ&™&Icode™%—J™J˜šœΟk œ˜J˜J˜—šœ™Jšœœœ˜J˜šœœœ˜J˜Jšœœœ˜J˜J˜—Jšœœœ ˜*J˜šœ œœ˜Jš œœ œœœ˜#Jšœœ œœ˜Jšœ œ œœ˜Jšœœ ˜Jšœœ ˜Jšœœ œœ˜&Jšœœ œœ˜$J˜J˜J˜——Jšœ™J˜Jšœœ˜Jšœ œ˜˜J˜J˜˜ Jšœ$™$J˜—˜ Jšœ>™>J˜—˜Jšœ$™$—J˜J˜˜J˜—J˜J˜——…—,έ