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