Re: [Haskell] Swapping parameters and type classes

On 9/16/07, Mads Lindstrøm
Hi all
If I have this type:
data Foo a b = ...
and this class
class Bar (x :: * -> *) where ...
I can imagine two ways to make Foo an instance of Bar. Either I must "apply" the 'a' or the 'b' in (Foo a b). Otherwise it will not have the right kind. To "apply" the 'a' I can do:
instance Bar (Foo a) where ...
But what if I want to "apply" the 'b' ? How do I do that ?
Greetings,
Mads Lindstrøm
_______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell
(Redirecting to Haskell-Cafe) I think the easiest way to make it work is with a newtype wrapper around 'Foo a b' that swaps the arguments, like Brent mentioned. Without it you need some kind of type level lambda abstraction. Something like: instance Bar (\x -> Foo x b) where ... But this is not valid Haskell. cheers, Bas
participants (1)
-
Bas van Dijk