Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003775OCamlOCaml generalpublic2005-08-29 18:422005-10-12 15:04
Reporteradministrator 
Assigned To 
PrioritynormalSeverityminorReproducibilityalways
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: 211.121.39-62.rev.gaoland.net (62.39.121.211)


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) ->
struct

  type attr = Bidon
  type obj = attr X.t
end

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

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 :
  sig
    module M : sig type 'a t = 'a end
    module X : sig type attr = Make(M).attr = Bidon type obj = attr M.t end
  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 :
  sig
    module M : sig type 'a t = 'a end
    module X : sig type attr = Bidon type obj = attr M.t end
  end


TagsNo tags attached.
Attached Files

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

-  Notes
(0002978)
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


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker