--- /dev/null
+main() {
+ var plus = \x y z -> x + y + z;
+ var ap = \f x -> f(x);
+
+ //this is fine:
+ var p3 = plus(2,1); //also fine
+ var res = ap(p3, 3); //6
+
+ //this breaks the stack
+ //var res = ap(plus(2,1), 3);
+ //also breaks the stack:
+ //var p2 = plus(2);
+ //var p3 = p2(1);
+ //var res = ap(p3, 3); //6
+
+ print(res);
+}
\ No newline at end of file