Polymorphic types TV "a" 'a Fun (TV "a", TV "b") 'a -> 'b Lambda ("x", Fun (TV "a", TV "b"), Var "x") : TypeSchema (["a"; "b"], Fun (Fun (TV "a", TV "b"), Fun (TV "a", TV "b"))) fun (x : 'a -> 'b) -> x : ('a -> 'b) -> ('a -> 'b)