MODULEKeyCB EXPORTSKeyCB ,KeyCBProxy ; IMPORT CB; REVEAL T = Public BRANDED OBJECT OVERRIDES init := Init; invoke := Invoke; END; PROCEDUREInit (self : T) : T = BEGIN self.proxy := NIL; IF MkProxyT # NIL THEN MkProxyT (self); END; RETURN self; END Init; PROCEDUREInvoke (self : T; kr : Rec) RAISES {CB.BadMethod} = BEGIN IF self.proxy # NIL THEN NARROW (self.proxy, Proxy).invoke (kr); ELSE RAISE CB.BadMethod("KeyCB.T.invoke method is undefined"); END; END Invoke; BEGIN END KeyCB.