blob: 60fa0e460e37937cf6ff496c0fb881ece2fb9a6f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
/* This example is more testing the typechecker flow typing rather
than the ocaml backend, but it does test that recursive functions work
correctly */
val get_size : unit -> {|32, 64|}
function get_size () = 32
val only64 = { ocaml: "(fun _ -> ())" } : bits(64) -> unit
val zeros : forall 'n. atom('n) -> vector('n, dec, bit)
function zeros n =
if (n == 1 + 0) then 0b0 else 0b0 @ zeros('n - 1)
val main : unit -> unit
function main () = {
let 'length = get_size ();
let xs = zeros(length);
if (length == 32) then {
()
} else {
only64(xs)
};
print_bits("xs = ", xs);
print_bits("zeros(64) = ", zeros(64))
}
|