What does the of keyword do in these definition of lazylist and a function using the type?
Is it just a constructor which defines the type of Cons, so that it takes a unit and computes a llist, or is there more to consider?
type 'a llist = Cons of 'a * (unit -> 'a llist)
let rec lnat i = Cons (i, (fun () -> lnat (i + 1)))
(The lnat-function takes an int and constructs a list of all natural numbers, starting from that input int).