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