File "t05bad.ml", line 10, characters 0-75: 10 | module rec A : sig type t = B.t -> int end = struct type t = B.t -> int end ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: The definition of "A.t" contains a cycle: "B.t -> int" contains "B.t", "B.t" = "A.t", "A.t" = "B.t -> int", "B.t -> int" contains "B.t", "B.t" = "A.t"