caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Renaming structures during inclusions?
@ 2005-05-11 15:44 Markus Mottl
  2005-05-11 16:33 ` [Caml-list] " Christophe TROESTLER
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Markus Mottl @ 2005-05-11 15:44 UTC (permalink / raw)
  To: ocaml

Hi,

I have run into a problem using the "include"-keyword for including
module definitions in other modules. E.g.:

----------------------------------------------
module M1 = struct
  type t
  module Std = struct end
end

module M2 = struct
  type t
  module Std = struct end
end

module M = struct
  include M1
  include M2
end
----------------------------------------------

The above is not possible, because the names for type t in M1 and M2,
and the module names for module Std clash. Though it would not lead to
any kind of unsoundness to allow this, it would make referring to
shadowed types or modules impossible, both for the user and also for
the compiler in error messages.

The only solution that seems to make sense and does not impose
excessive work on the user is, IMHO, to provide for a facility to
rename types and modules, e.g. maybe something like:

----------------------------------------------
module M = struct
  include M1
    with type t as m1_t
    with module Std as M1Std

  include M2
    with type t as m2_t
    with module Std as M2Std

  module Std = struct
    include M1Std
    include M2Std
  end
end
----------------------------------------------

In the above example I also added a new Std-module that includes the
contents of the two old ones.

The only current way to get something similar right now is to
explicitly create new bindings for all entities in the modules to be
included, which may be an enormous amount of work depending on their
size.

What do the developers think? Would it be a good idea to add a
renaming facility to the language (it wouldn't even require any new
keywords)?

Best regards,
Markus

-- 
Markus Mottl        http://www.ocaml.info        markus.mottl@gmail.com


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2005-05-12 20:02 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-11 15:44 Renaming structures during inclusions? Markus Mottl
2005-05-11 16:33 ` [Caml-list] " Christophe TROESTLER
2005-05-11 17:11   ` Andreas Rossberg
2005-05-11 18:02     ` Markus Mottl
2005-05-12 14:24       ` Andreas Rossberg
2005-05-11 18:16     ` Christophe TROESTLER
2005-05-12  1:24 ` Jacques Garrigue
     [not found]   ` <f8560b80505120836681ab281@mail.gmail.com>
2005-05-12 17:09     ` Markus Mottl
2005-05-12 15:26 ` Norman Ramsey
2005-05-12 20:02 ` Aleksey Nogin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).