|
Re: First class modules: msg#00020lang.haskell.general
Fergus Henderson writes: > On 07-Nov-2000, Tom Pledger <Tom.Pledger@xxxxxxxxx> 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? > > No. > > | 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. Thanks for the analysis. I see how there's no way for another module (or any other declarations in the same module) to disambiguate that. How about the cases where the module boundary plays a part in triggering the MR, like this? module MRDemo where x = return () I've got the impression that these cases are the ones which provoke most of the MR criticism. Would they be relieved by quantifying at the module level, so that the ambiguity gets passed to modules which import MRDemo and use x? Regards, Tom |
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Passing an environment around: 00020, Jeffrey R. Lewis |
|---|---|
| Next by Date: | CFP: JFP on SAIG: 00020, Walid Taha |
| Previous by Thread: | Re: First class modulesi: 00020, Fergus Henderson |
| Next by Thread: | Translations: 00020, M. S. Poole |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |