[m-dev.] module system discussion

Simon Taylor stayl at cs.mu.OZ.AU
Wed Dec 12 02:21:34 AEDT 2001


On 12-Dec-2001, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> On 11-Dec-2001, Simon Taylor <stayl at cs.mu.OZ.AU> wrote:
> > On 11-Dec-2001, Fergus Henderson <fjh at cs.mu.OZ.AU> wrote:
> > > On 30-Nov-2001, Simon Taylor <stayl at cs.mu.OZ.AU> wrote:
> > > > 
> > > > I'm not proposing the `:- transparent_module' extension just
> > > > for .NET. I am arguing that it is generally good style to qualify
> > > > class method names with the class name, and that it is worth adding
> > > > a small extension to the module system to make that more convenient.
> > > > This hasn't come up before because we haven't used typeclasses much
> > > > before, and especially not in large module hierarchies.
> > > 
> > > Wouldn't ordinary nested modules and `:- use_hierarchy' suffice,
> > > both for Mercury type classes, and for interfacing with .NET?
> > 
> > I don't think it's OK to have to `:- use_hierarchy System'
> > to use the classes defined at the top level.
> 
> If you have a deep hierarchy, then I would argue that it is bad style
> to define classes at the top level anyway; they should be defined
> in modules at the leaves of the hierarchy.

I'm not sure that's right. For a sub-hierarchy of a module hierarchy
there may be some types and classes used by all elements of the
sub-hierarchy. Those types can either be placed in the root module of
the sub-hierarchy, or in a leaf sub-module of the root. Placing them in
a sub-module adds an extra thing to remember (the name of the sub-module)
and an extra module to import. I don't see much advantage to doing it
that way

It also doesn't seem to be the common practice, either in .NET or in Java.

Simon.
--------------------------------------------------------------------------
mercury-developers mailing list
Post messages to:       mercury-developers at cs.mu.oz.au
Administrative Queries: owner-mercury-developers at cs.mu.oz.au
Subscriptions:          mercury-developers-request at cs.mu.oz.au
--------------------------------------------------------------------------



More information about the developers mailing list