On 21-Dec-2000, George Russell <[EMAIL PROTECTED]> wrote:
> (3) Finally it would be nice to extend the module syntax to allow named
> instances to be selectively exported and imported, just like variables.
Mercury's module system allows instance declarations (which, as in
Haskell 98, are unnamed) to be selectively exported.
:- module foo.
:- interface.
:- import_module enum.
:- type t.
:- instance enum(t).
:- implementation.
:- instance enum(t) where [ ... ].
Mercury doesn't directly support selective import -- you can only
import a whole module, not part of it. But if you really want that
you can achieve it by putting each instance declaration in its own
nested module.
:- module foo.
:- interface.
:- import_module enum.
:- type t.
:- module enum_t.
:- interface.
:- instance enum(t).
:- end_module enum_t.
:- implementation.
:- module enum_t.
:- implementation.
:- instance enum(t) where [ ... ].
:- end_module enum_t.
--
Fergus Henderson <[EMAIL PROTECTED]> | "I have always known that the pursuit
| of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell