<> <> ProcTypeTestImpl: CEDAR PROGRAM = BEGIN E: ERROR = CODE; Int: TYPE = INT; Ref: TYPE = REF INT; i1: INT = 47; i2: INT = 86; r1: Ref = NEW [INT _ i1]; r2: Ref = NEW [INT _ i2]; ArgAAResAA: PROC [Int, Ref] RETURNS [Ref, Int] _ {E}; ArgAAResNN: PROC [Int, Ref] RETURNS [s: Ref, j: Int] _ {E}; ArgNNResNN: PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] _ {E}; ArgMMResNN: PROC [k: Int, t: Ref] RETURNS [s: Ref, j: Int] _ {E}; ArgMMResMM: PROC [k: Int, t: Ref] RETURNS [u: Ref, l: Int] _ {E}; Safe: SAFE PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] _ {E}; Unsafe: UNSAFE PROC [i: Int, r: Ref] RETURNS [s: Ref, j: Int] _ {E}; AnonymousDefaultArgs: PROC [Int _ i1, Ref _ r1] _ {E}; AnonymousDefaultResults: PROC RETURNS [Int _ i1, Ref _ r1] _ {E}; Arg0Res0: PROC [i: Int _, r: Ref _] RETURNS [s: Ref _NIL, j: Int _] _ {E}; Arg0Res1: PROC [i: Int _, r: Ref _] RETURNS [s: Ref _ r1, j: Int _ i1] _ {E}; Arg0Res2: PROC [i: Int _, r: Ref _] RETURNS [s: Ref _ r2, j: Int _ i2] _ {E}; Arg1Res2: PROC [i: Int _ i1, r: Ref _ r1] RETURNS [s: Ref _ r2, j: Int _ i2] _ {E}; Arg2Res2: PROC [i: Int _ i2, r: Ref _ r2] RETURNS [s: Ref _ r2, j: Int _ i2] _ {E}; ArgVResV: PROC [i: Int _ i1|TRASH, r: Ref _ r1] RETURNS [s: Ref _ r2, j: Int _ i2|TRASH] _ {E}; ArgAAResAA _ ArgAAResNN; ArgAAResNN _ ArgAAResAA; ArgAAResNN _ ArgNNResNN; ArgNNResNN _ ArgAAResNN; <> <> <> Unsafe _ Safe; Arg0Res0 _ Arg0Res1; Arg0Res1 _ Arg0Res0; Arg0Res1 _ Arg0Res2; Arg0Res2 _ Arg0Res1; Arg0Res2 _ Arg0Res0; Arg0Res0 _ Arg0Res2; Arg0Res2 _ Arg1Res2; Arg1Res2 _ Arg0Res2; Arg1Res2 _ Arg2Res2; Arg2Res2 _ Arg1Res2; Arg2Res2 _ Arg0Res2; Arg0Res2 _ Arg2Res2; END.