1let
2    // f[] returns true or false. Execute f[] on the GPU, colour the world
3    // green if it is true, red if it is false.
4    sc_assert(f) = make_shape {
5        dist : everything.dist,
6        colour p :
7            let [x,y,z,t] = p;
8                b = bit(f[]);
9            in [1-b, b, 0],
10        is_2d : true,
11    };
12    fact n =
13        let i = 1;
14            r = 1;
15        in do
16            while (i <= n) (
17                r := r * i;
18                i := i + 1;
19            );
20        in r;
21in do
22    print(fact 5);
23    assert(fact 5 == 120);
24in
25sc_assert([]->(fact 5 == 120))
26