% Type-correct tests for all syntactic constructs

1;
true;
if true then 1 else 2;
1=2;
1<2;
1+2;
1-2;
1*2;
~1;
fun f(x:bool):int is if x then 1 else f x;
let x = 1 in x+2;
(fun f(x:bool):int is if x then 1 else f x) true;
();
(1,true,());
(1,true).1+2;
if (1,true).2 then 3 else 4;
fun f(x:0):int is abort[int] x;
in1[int+bool] 1;
in2[int+bool] true;
case in1[int+bool] 1 of in1 x => x+2 | in2 y => if y then 3 else 4;
1+(letcc[int] k in 2);
1+(letcc[int] k in if throw[bool] 2 to k then 3 else 4);
(try 1 ow 2)+3;
1+try 2+fail[int] ow 42;
