[Haskell-cafe] Fundep Curiosity
Daniel Fischer
daniel.is.fischer at web.de
Tue May 12 08:41:04 EDT 2009
Am Montag 11 Mai 2009 18:36:54 schrieb Christopher Lane Hinson:
> I've noticed that a large majority of fundeps I see in other people's
> libraries are written:
>
> class C a b | b -> a
>
> Where the dependent parameter appears first in the MPTC. Is there a
> reason for this?
Yes. Generalised newtype deriving (perhaps others, but that's what jumped at me).
Consider
class MonadState s m | m -> s where ...
newtype State s a = State { runState :: s -> (a,s) }
instance Monad (State s) where ...
instance MonadState s (State s) where ...
newtype MySpecialState s a = MSS (State (s,Int) a)
deriving (Monad, MonadState (s,Int))
>
> AFAIK, there isn't any semantic significance to the order of parameters in
> an MPTC. Why do many haskellers find this configuration more intuitive?
>
> Friendly,
> --Lane
More information about the Haskell-Cafe
mailing list