
8 Jun
2007
8 Jun
'07
10:25 a.m.
Hola Emilio!
On 6/7/07, Emilio Jesús Gallego Arias
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 :)