(* TEST * expect *) let x = ref [] module M = struct type t let _ = (x : t list ref) end;; [%%expect{| val x : '_weak1 list ref = {contents = []} Line 2, characters 34-35: 2 | module M = struct type t let _ = (x : t list ref) end;; ^ Error: This expression has type 'weak1 list ref but an expression was expected of type t list ref The type constructor t would escape its scope |}]