Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003775OCaml~DO NOT USE (was: OCaml general)public2005-08-29 18:422005-10-12 15:04
Assigned To 
StatusclosedResolutionno change required 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0003775: bug in module alias
DescriptionFull_Name: Daniel Weil
Version: 3.08.3
OS: Win32
Submission from: (

This bug was previously submitted and considered as "not a bug".
I re-submit it with a simpler example :

module Make = functor (X: sig
  type 'a t
end) ->

  type attr = Bidon
  type obj = attr X.t

module Obj = struct
  module M = struct
    type 'a t = 'a
  module X = Make (M)

module Obj' = Obj

let f = fun (x:Obj.X.obj)-> (x:Obj'.X.obj)

This program is refused because the signature of module "Obj" is

module Obj :
    module M : sig type 'a t = 'a end
    module X : sig type attr = Make(M).attr = Bidon type obj = attr M.t end

I Think that the strenghening if module Obj.X is too strong, signature of module
Obj should just be (the alias to the functor application "= Make(M).attr" does
not look necessary)

module Obj :
    module M : sig type 'a t = 'a end
    module X : sig type attr = Bidon type obj = attr M.t end

TagsNo tags attached.
Attached Files

- Relationships
has duplicate 0005302closed two names for same module are (wrongly) distinguished by the typechecker 

-  Notes
administrator (administrator)
2005-10-12 15:04

This is still "not a bug", but a limitation of the OCaml module system
( F(X).t != F(X').t even if X = X' ) that will not go away any time soon.

- Issue History
Date Modified Username Field Change
2005-11-18 10:14 administrator New Issue
2011-07-27 14:52 xclerc Relationship added has duplicate 0005302
2017-02-23 16:36 doligez Category OCaml general => -OCaml general
2017-03-03 17:55 doligez Category -OCaml general => -(deprecated) general
2017-03-03 18:01 doligez Category -(deprecated) general => ~deprecated (was: OCaml general)
2017-03-06 17:04 doligez Category ~deprecated (was: OCaml general) => ~DO NOT USE (was: OCaml general)

Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker