<> <> DIRECTORY Rope, ViewerClasses; Averagers: CEDAR DEFINITIONS = { ROPE: TYPE = Rope.ROPE; Viewer: TYPE = ViewerClasses.Viewer; Seconds: TYPE = INT; Averager: TYPE = REF AveragerPrivate; AveragerPrivate: TYPE; Create: PROC [ viewerInfo: ViewerClasses.ViewerRec _ [], name: ROPE, nameWidth: INT, halfLife: Seconds, logMin, logMax: INT, initialValue: REAL _ 0.0 ] RETURNS [Averager]; AddSample: PROC [a: Averager, amount: REAL]; AsViewer: PROC [Averager] RETURNS [Viewer]; }.