[Haskell-cafe] Re: Associated Type Synonyms question

Stefan Wehr mail at stefanwehr.de
Fri Feb 17 12:38:50 EST 2006

Stefan Wehr <mail at stefanwehr.de> wrote::

> Niklas Broberg <niklas.broberg at gmail.com> wrote::
>> On 2/10/06, Ross Paterson <ross at soi.city.ac.uk> wrote:
>>> On Fri, Feb 10, 2006 at 05:20:47PM +0100, Niklas Broberg wrote:
>>> > - when looking at the definition of MonadWriter the Monoid constraint
>>> > is not strictly necessary, and none of the other mtl monads have
>>> > anything similar. Is it the assumption that this kind of constraint is
>>> > never really necessary, and thus no support for it is needed for ATS?
>>> I think that's right -- it's only needed for the Monad instance for
>>> WriterT.  But it is a convenience.  In any instance of MonadWriter, the
>>> w will be a monoid, as there'll be a WriterT in the stack somewhere,
>>> so the Monoid constraint just saves people writing general functions
>>> with MonadWriter from having to add it.
>> Sure it's a convenience, and thinking about it some more it would seem
>> like that is always the case - it is never crucial to constrain a
>> parameter. But then again, the same applies to the Monad m constraint,
>> we could give the same argument there (all actual instances will be
>> monads, hence...). So my other question still stands, why not allow
>> constraints on associated types as well, as a convenience?
> Manuel (Chakravarty) and I agree that it should be possible to
> constrain associated type synonyms in the context of class
> definitions. Your example shows that this feature is actually
> needed. I will integrate it into phrac within the next few days.

I have now implemented this feature in PHRaC. You need to get PHRaC via darcs:


An example is included in PHRaC's source code under

I haven't tested the extension extensively. Just tell me if you have
any problems.


More information about the Haskell-Cafe mailing list