--- /dev/null
+
+#!+ this is doc a comment
+
+#!- this also
+
+const float ii;
+123=> var float f;
+
+foreach(a : [12, 1, 2 ,3].compactMap:[int]( \a {
+ var int?i;
+ 145 => i.val;
+ if(maybe)
+ i.val++;
+ return i;
+ }
+)) {
+ <<< "mapped to => ${a}" >>>;
+}
+
+fun int? t(int x) {
+ var int?i;
+ 145 => i.val;
+ if(maybe)
+ i.val++;
+ return i;
+}
+foreach(a : [12, 1, 2 ,3].compactMap:[int](t))
+ <<< "mapped to => ${a}" >>>;
+<<< "test" >>>;
--- /dev/null
+var int _i;
+const int i[2];
+
+fun bool t(int i) { return true; }
+<<< i.count(t) >>>;
+<<< i.count(t) >>>;
+<<< i.count(t) >>>;
+<<< i.count(t) >>>;
+
+<<< i.filter(\a { return maybe; }).size() >>>;
+<<< i.filter(\a { return maybe; }).size() >>>;
+<<< i.filter(\a { return maybe; }).size() >>>;
+<<< i.filter(\a { return maybe; }).size() >>>;
--- /dev/null
+#!const float f;const int i[0];
+#!const int aa;
+fun bool t(int i) { return true; }
+<<< [1].filter(\a { return maybe; }).size() >>>;
+<<< [1].filter(t).size() >>>;
+#!me.exit();
+#!me.exit();
+
+#!<<< i.filter(\a { return maybe; }).size() >>>;
--- /dev/null
+fun float t(float i, float j) {
+ <<< "${i} ${j} ${i+j}" >>>;
+ return i$int + j$int;
+}
+
+#!const int i ;
+const float f[3];
+#!<<< f.foldl:[float](t, 1.2) >>>;
+[1.,2.,3.].foldl:[float](t, 3.);
--- /dev/null
+const float iii;
+fun int t(int i, int j) {
+ <<< "${i} ${j} ${i+j}" >>>;
+ return i$int + j;
+}
+<<< [1,2,3].foldl:[int](t, 0) >>>;
+<<< [1,2,3].foldl:[int](t, 0) >>>;
+<<< [1,2,3].foldl:[int](t, 0) >>>;
+<<< [1,2,3].foldl:[int](t, 0) >>>;
+
+const int i[0];
+<<< i.foldl:[int](t, 0) >>>;
--- /dev/null
+fun float t(float i, float j) {
+ <<< "${i} ${j} ${i+j}" >>>;
+ return i$int + j$int;
+}
+
+#!const int i ;
+#!const float f[3];
+#!<<< f.foldl:[float](t, 1.2) >>>;
+[1.,2.,3.].foldr:[float](t, 3.);
--- /dev/null
+fun float t(float i) { return 2; }
+foreach(a : [12., 1, 2 ,3].map:[float](t))
+ <<< "mapped to => ${a}" >>>;
+#!foreach(a : [12, 1, 2 ,3].map:[int](t))
+#! <<< "mapped to => ${a}" >>>;
+#!foreach(a : [12, 1, 2 ,3].map:[int](t))
+#! <<< "mapped to => ${a}" >>>;
+#!foreach(a : [12, 1, 2 ,3].map:[int](t))
+#! <<< "mapped to => ${a}" >>>;
+#!foreach(a : [12, 1, 2 ,3].map:[int]( \a {145 => a;return 2;}))
+#! <<< "mapped to => ${a}" >>>;
+#!foreach(a : [12, 1, 2 ,3].map:[int]( \a {145 => a;return 2;}))
+#! <<< "mapped to => ${a}" >>>;