File "t04bad.ml", line 10, characters 0-73: 10 | module rec A : sig type t = int * A.t end = struct type t = int * A.t end;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Error: The type abbreviation A.t is cyclic: int * A.t contains A.t, A.t = int * A.t, int * A.t contains A.t