module Graphics; type {ref,public} (* class *) Point = object(ord,abs: integer) var (* instance variables *) {public,immutable} x,y: integer; (* method *) procedure {public} Ord():integer; begin return y end Ord; (* method *) procedure {public} Abs():integer; begin return x end Abs; (* constructor *) begin self.x := ord; self.y := abs; end Point; end Graphics. module Main; import Graphics; var p: Graphics.Point; procedure Write(p: Graphics.Point); begin writeln('[':1,p.x:3,',':1,p.y:3,']':1) end Write; begin p := new Graphics.Point(12,12); Write(p); writeln("Abs: ":4,p.Abs():3," Ord: ":5,p.Ord():3); end Main.