fun : [`a, `b] `a -> `b
    false_rec (x : `a) = false_rec2<`b, `a> (x)

and : [`a, `b] `b -> `a
    false_rec2 (x : `b) = false_rec<`b, `a> (x)

let main : string = false_rec<int, string> (43)