<<>> <> <> <> <> <> <<>> DIRECTORY Basics, Commander, IO, Rope; StdCorpse6: CEDAR PROGRAM IMPORTS Commander ~ BEGIN ROPE: TYPE ~ Rope.ROPE; ESub: TYPE ~ Basics.PartialComparison; TagdVRT: TYPE ~ RECORD [ f1: REAL, r1: ROPE, vnt: SELECT tag: ESub FROM greater => [i: INT], incomparable => [c: CHAR] ENDCASE]; BoundTagdVRT: TYPE ~ TagdVRT[greater]; tvr: TagdVRT _ [1.2, "hi", incomparable['i]]; btvr: BoundTagdVRT _ [1.3, "lo", greater[12]]; CmpdVRT: TYPE ~ RECORD [SELECT COMPUTED ESub FROM greater => [i: INT], incomparable => [c: CHAR] ENDCASE]; BoundCmpdVRT: TYPE ~ CmpdVRT[greater]; OvldVRT: TYPE ~ RECORD [SELECT OVERLAID ESub FROM greater => [i: INT], incomparable => [c: CHAR] ENDCASE]; BoundOvldVRT: TYPE ~ OvldVRT[greater]; Cmd: Commander.CommandProc ~ { OPEN tvr, x:btvr; y: TagdVRT _ [0.1, "next", incomparable['d]]; TRUSTED {WITH yy: y SELECT FROM incomparable => { IF x.f1 + yy.f1 = f1 THEN ERROR; }; ENDCASE => ERROR}; }; Commander.Register["StdCorpse6.Test", Cmd, "test OPEN & SELECT"]; END.