Is the following an expected change from OCaml 4.00.1 to 4.01.0?

Module Foo defines a private type and this module is included in Common. The signature within Common is defined using `module type of` with a constraint. The different behavior shown below occurs when the private type is a record, but not if it is a base type like string or int. In that case, the code compiles with both 4.00.1 and 4.01.0.

$ cat a.ml 
module Foo : sig
  type t = private {a:int}
end = struct
  type t = {a:int}
end

module Common : sig
  module F : module type of Foo with type t = Foo.t
end = struct
  module F = Foo
end

$ ocaml -version
The OCaml toplevel, version 4.01.0

$ ocaml a.ml
(* no errors *)

Now, change version of OCaml being used.

$ ocaml -version
The OCaml toplevel, version 4.00.1

$ ocaml a.ml
File "a.ml", line 9, characters 6-33:
Error: Signature mismatch:
       Modules do not match:
         sig module F : sig type t = Foo.t = private { a : int; } end end
       is not included in
         sig module F : sig type t = Foo.t = { a : int; } end end
       In module F:
       Modules do not match:
         sig type t = Foo.t = private { a : int; } end
       is not included in
         sig type t = Foo.t = { a : int; } end
       In module F:
       Type declarations do not match:
         type t = Foo.t = private { a : int; }
       is not included in
         type t = Foo.t = { a : int; }
       File "a.ml", line 8, characters 37-51: Expected declaration
       File "a.ml", line 2, characters 7-26: Actual declaration
       A private type would be revealed.