type 'a list = Nil | Cons of 'a * 'a list
type unit = Unit

let nil = fun ['a] (x : unit) => match x with Unit => Nil['a] end
let forall 'a ornament nil ['a] : unit -> 'a list