INTERFACELineTypePropPrivate ; IMPORT GraphicsBase, Prop, PropPrivate; FROM LineTypeProp IMPORT Kind, Name, PublicName, Val, PublicVal, Beh, PublicBeh; REVEAL Name <: PrivateName; TYPE PrivateName = PublicName OBJECT METHODS init (default : Kind) : Name; getState (base : GraphicsBase.T) : Kind; END; REVEAL Val <: PrivateVal; TYPE PrivateVal = PublicVal OBJECT val : Kind; (* The cache is updated by calling "adjust". *) END; REVEAL Beh <: PrivateBeh; TYPE PrivateBeh = PublicBeh OBJECT METHODS value (time : LONGREAL) : Kind RAISES {Prop.BadMethod}; END; TYPE Stack <: PublicStack; PublicStack = PropPrivate.Stack OBJECT top : Kind; METHODS push (val : Kind); pop () : Kind; END; END LineTypePropPrivate.