[Haskell-cafe] MPTC or functional dependencies?

Kim-Ee Yeoh ky3 at atamo.com
Fri Dec 21 14:09:05 CET 2012


Petr,

Your subject header is misleading: FDs don't make sense without MPTCs.

As you acknowledge at the end, what you're ultimately asking is: to FD or
not to FD.

Note also, the contemporary debate has shifted to TFs (type families) vs
FDs.


-- Kim-Ee


On Fri, Dec 21, 2012 at 7:38 PM, Petr P <petr.mvd at gmail.com> wrote:

> Dear Haskellers,
>
> I'm working on a small library for representing semigroup (or monoid)
> actions on a set <http://hackage.haskell.org/package/semigroups-actions>.
> The MultiParamTypeClasses extension seems to be best suited for the task,
> as a group can act on many sets, and a set can be acted on by different
> groups:
>
>     -- | Represents an action of semigroup @g@ to set @a at .
>     --
>     -- Laws: @'Endo' . 'act'@ must be a homomorphism of semigroups.
>     class Semigroup g => SemigroupAct g a where
>         act :: g -> (a -> a)
>
> But soon I realized that with MPTC the compiler has problems inferring
> types and I had to explicitly specify types when using `act` in many
> places. Because it seems that in most cases a set will have only a single
> group acting on it, I was thinking about using FDs:
>
>     class Semigroup g => SemigroupAct g a | a -> g where
>
> But on the other hand, this can limit the generality of the type class. I
> cannot decide which one I should choose.
>
> What would you suggest? According to your experience, would you choose
> plain MPTC or FD?
>
> Best regards,
> Petr Pudlak
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20121221/34810b60/attachment.htm>


More information about the Haskell-Cafe mailing list