David Roundy <[EMAIL PROTECTED]> writes: > On Mon, Jul 30, 2007 at 11:47:46AM +0100, Jon Fairbairn wrote: > > [snippage] This is all very horrid, but as far as I can tell > > what I was proposing wouldn't lead to such a mess, except > > possibly via defaulting, which, as the least important > > aspect of the idea could easily be abandoned. > > What your suggestion would do would be to make the type inferred for every > pattern-matched function polymorphic,
No it wouldn't. I reiterate: constructors would either belong to a class or to a datatype, so for constructors that belong to a datatype the situation would be exactly as before. It's unfortunate that when I wrote my example I assumed that everyone would understand that for some classes we would have defaults (because we already have this: the constructors for Integer effectively belong to a class and are defaulted to Integer). I'm now quite convinced that using defaults together with more general overloaded constructors would be a mistake, but that's all you've managed to convince me of! Yes, there is a problem that importing a class with a constructor into a scope that declares the same constructor as a data constructor would cause difficulties (namely the module would nolonger compile), but aren't they exactly the same difficulties as when the name in question is just a function name? -- Jón Fairbairn [EMAIL PROTECTED] _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe