File "t07bad.ml", lines 10-11, characters 0-54: 10 | module rec A : sig type 'a t = end 11 | = struct type 'a t = end.. Error: This recursive type is not regular. The type constructor A.t is defined as type 'a A.t but it is used as 'a list A.t. All uses need to match the definition for the recursive type to be regular.