(* TEST: [-asc -tc] *) type rec: [character: x; integer: y] type T2: rec -> integer type main: string -> integer function entry: main function bar: T2 bar (r,s) := { return 0; } entry (arg) := { [ Boolean:x ; Boolean:y ; Boolean:z ; Boolean:t] while ( ( x | y ) (* | ( z | t ) *) ) { (* if ( ( x < y ) & ( z = t ) ) then { y := z < t; } else { t := z = t; } *) y := t < z; (* bar('c', 7); *) } (* x := x & y; *) return 0; }