Good point, again. Is that the only problem with it? On Thu, Apr 25, 2013 at 5:57 PM, Dan Doel <dan.d...@gmail.com> wrote:
> It is not completely backwards compatible, because (for instance) the > declaration: > > newtype C a => Foo a = Foo a > > was allowed, but: > > newtype Foo a where > Foo :: C a => a -> Foo a > > is an illegal definition. It can only be translated to a non-newtype data > declaration, which changes the semantics. > > > On Thu, Apr 25, 2013 at 10:35 AM, Gábor Lehel <illiss...@gmail.com> wrote: > >> I've wondered this too. What would have been wrong with a simple >> source-to-source translation, where a constraint on the datatype itself >> translates to the same constraint on each of its constructors? Perhaps it >> would be unintuitive that you would have to pattern match before gaining >> access to the constraint? On a superficial examination it would have been >> backwards-compatible, allowing strictly more programs than the previous >> handling. >> >> On Thu, Apr 25, 2013 at 12:38 PM, harry <volderm...@hotmail.com> wrote: >> >>> If I understand correctly, the problem with datatype contexts is that if >>> we >>> have e.g. >>> data Eq a => Foo a = Foo a >>> the constraint Eq a is thrown away after a Foo is constructed, and any >>> method using Foos must repeat Eq a in its type signature. >>> >>> Why were these contexts removed from the language, instead of "fixing" >>> them? >>> >>> PS This is following up on a discussion on haskell-beginners, "How to >>> avoid >>> repeating a type restriction from a data constructor". I'm interested in >>> knowing whether there's a good reason not to allow this, or if it's just >>> a >>> consequence of the way type classes are implemented by compilers. >>> >>> >>> _______________________________________________ >>> Haskell-Cafe mailing list >>> Haskell-Cafe@haskell.org >>> http://www.haskell.org/mailman/listinfo/haskell-cafe >>> >> >> >> >> -- >> Your ship was destroyed in a monadic eruption. >> _______________________________________________ >> Haskell-Cafe mailing list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe >> >> > -- Your ship was destroyed in a monadic eruption.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe