First class modules

Fergus Henderson
Thu, 9 Nov 2000 03:04:33 +1100

On 07-Nov-2000, Tom Pledger <> wrote:
> Supposing that (some version of) Haskell had first class modules, and
> type variables could be universally quantified at the module level,
> would rule 2 of the monomorphism restriction go away?


 |    Rule 2. Any monomorphic type variables that remain when type
 |    inference for an entire module is complete, are considered
 |    ambiguous, and are resolved to particular types using the
 |    defaulting rules (Section 4.3.4).

Although this rule refers to the "entire module", its typical for
the ambiguity to arise within a single function:

	foo = show (read "whatever")

This expression is fundamentally ambiguous unless you somehow
disambiguate what type it is that you are trying to read.
I don't see how first class modules could solve that.

Fergus Henderson <>  |  "I have always known that the pursuit
                                    |  of excellence is a lethal habit"
WWW: <>  |     -- the last words of T. S. Garp.