Occurs check: cannot construct the infinite type: t = t -> t Expected type: ((t -> t -> t) -> (t -> t -> t) -> t -> t -> t) -> ((t -> t -> t) -> (t -> t -> t) -> t -> t -> t) -> ((t -> t -> t) -> (t -> t -> t) -> t -> t -> t -> t) -> ((t1 -> t2 -> t3) -> t3) -> t2 Inferred type: ((t -> t -> t) -> (t -> t -> t) -> t -> t -> t) -> ((t -> t -> t) -> (t -> t -> t) -> t -> t -> t -> t) -> ((t1 -> t2 -> t3) -> t3) -> t2