You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Original bug ID: 1840 Reporter: administrator Status: closed Resolution: not a bug Priority: normal Severity: minor Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: Fernando Alegre
Version: 3.06 and 3.07beta2
OS: Linux
Submission from: r49h230.res.gatech.edu (128.61.49.230)
We are puzzled by what we think is possibly a typechecker bug, as the only
difference between Tbool and Tfloat below is the specific type (either bool
or float). The compiler should either fail or succeed in both cases, but it
succeeds in one and fails in the other...
Here is the content of test.ml:
module Test (A: sig type t end) (B: sig type x = {f:A.t} end) = struct end
module Abool = struct type t = bool end
module Bbool = struct type x = {f:bool} end
module Afloat = struct type t = float end
module Bfloat = struct type x = {f:float} end
And here is the output (both in Ocaml-3.06 and 3.07beta2):
$ ocamlc -c test.ml
File "test.ml", line 11, characters 29-35:
Signature mismatch:
Modules do not match:
sig type x = Bfloat.x = { f : float; } end
is not included in
sig type x = { f : Afloat.t; } end
Type declarations do not match:
type x = Bfloat.x = { f : float; }
is not included in
type x = { f : Afloat.t; }
The text was updated successfully, but these errors were encountered:
Original bug ID: 1840
Reporter: administrator
Status: closed
Resolution: not a bug
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Full_Name: Fernando Alegre
Version: 3.06 and 3.07beta2
OS: Linux
Submission from: r49h230.res.gatech.edu (128.61.49.230)
We are puzzled by what we think is possibly a typechecker bug, as the only
difference between Tbool and Tfloat below is the specific type (either bool
or float). The compiler should either fail or succeed in both cases, but it
succeeds in one and fails in the other...
Here is the content of test.ml:
module Test (A: sig type t end) (B: sig type x = {f:A.t} end) = struct end
module Abool = struct type t = bool end
module Bbool = struct type x = {f:bool} end
module Afloat = struct type t = float end
module Bfloat = struct type x = {f:float} end
module Tbool = Test(Abool) (Bbool)
module Tfloat = Test(Afloat)(Bfloat)
And here is the output (both in Ocaml-3.06 and 3.07beta2):
$ ocamlc -c test.ml
File "test.ml", line 11, characters 29-35:
Signature mismatch:
Modules do not match:
sig type x = Bfloat.x = { f : float; } end
is not included in
sig type x = { f : Afloat.t; } end
Type declarations do not match:
type x = Bfloat.x = { f : float; }
is not included in
type x = { f : Afloat.t; }
The text was updated successfully, but these errors were encountered: