Re: [Haskell-cafe] type versus data declarations
Hola Emilio! On 6/7/07, Emilio Jesús Gallego Arias [EMAIL PROTECTED] wrote: Hello, I'm wondering why you can write data FSet a = Show a = M (a - Double) a :: FSet Double a = M $ \x - 0 and it works, but type FSet a = Show a = (a - Double) type only works for redefinitions (i.e. adding the |Show a| constraint makes FSet a different type to (a - Double)). In addition you seem to be trying to pack a dictionary with the type (something you cannot do in Haskell without existentials). This is just a guess, but it seems that a definition using existentials is what you're looking for. data FSet a = forall a. Show a = FSet (a - Double) Cheers, PD: Saluda Ángel de mi parte :) ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
[Haskell-cafe] type versus data declarations
Hello, I'm wondering why you can write data FSet a = Show a = M (a - Double) a :: FSet Double a = M $ \x - 0 and it works, but type FSet a = Show a = (a - Double) a :: FSet Double a _ = 0 fails with All of the type variables in the constraint `Show a' are already in scope (at least one must be universally quantified here) In the type synonym declaration for `FSet' If I understood the GHC manual, this should work, as FSet a should be replaced in a, so a type signature would come: a :: Show a = (a - Double) which is OK. Sorry if this is FAQ, but I did some searches and nothing came out. Thanks in advance, Emilio ___ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe