Num A(Num x) -> 
1 + x

Num B(Num x, Num y) -> 
x - y

Num C(Num x, Num y) -> 
x * 1;
7i ^ y

Num D(Num x, Num y) -> 
Num p <- x;
Num q <- p;
Num r <- q;
Num w <- r;
w / y

NumArr E(Num x, NumArr y) -> 
Num p <- x;
Num q <- p;
Num r <- q;
Num w <- r;
y[w];
y

Num mapf1(Num a) -> 
a ^ 2.0

NumArr F(NumArr x) -> 
mapf1{x}

Num reducef1(Num a, Num b) -> 
b + a

Num G(Num x, Num y, NumArr z) -> 
reducef1{y, z} / x

NumArr reducef2(NumArr a, Num b) -> 
a[b] * 2;
a

NumArr H(NumArr x, NumArr y) -> 
reducef2{x, y}

NumArr I(Num a, Num b, Num c) -> 
mapf1{a..b\c}

Num J(NumArr p, Num q, Num v) -> 
p[q]<-v

Num K(Num c, Num a, Num b) -> 
if c then a else b + 1

NumArr L(Num c, Num a, NumArr b) -> 
if c then 0..a\1 else b

NumArr M(Num p, Num q, NumArr r) -> 
L(p, q, r)

Num O(Num x) -> 
sin(x)

NumArr P(NumArr a) -> 
0..len(a)\1

Num Q(Num r, Num s) -> 
distance(r, s)

Num R(Num x, NumArr y) -> 
(NumArr x, Num z -> z + len(x))(y, x)

Num S(Num w, Num u) -> 
Num z <- (Num q, Num p -> if q > p then w else u)(0, 1);
w + z / u

Num T(NumArr w, NumArr u) -> 
NumArr z <- (Num q, Num p -> if q > p then w else u)(0, 1);
len(z)

Num U(Num a) -> 
-a