Remove redundant Functor constraint from StateT Applicative/Alternative instances

Ross Paterson R.Paterson at city.ac.uk
Wed Nov 23 01:02:24 UTC 2016


On Tue, Nov 22, 2016 at 09:17:32AM +0000, Baldur Blöndal wrote:
> 1) is good, I assume 3) will happen once the dust settles on AMP

Yes, there's a lot of conditional CPP in there already, but this doesn't
seem severe enough to justify more.

> 2016-11-22 8:56 GMT+00:00 Edward Kmett <ekmett at gmail.com>:
> 
>     They could be CPP'd around on newer versions, sure, at the cost of a fair
>     bit of noise in the source code. Presumably it was considered simpler to
>     just have one type signature. I've CC'd Ross Paterson, the maintainer of
>     transformers. Ultimately it comes down to a 3 way decision between 1.)
>     cleaner code by keeping the status quo, or 2.) cleaner haddocks by changing
>     the code as requested here conditionally with CPP, or 3.) loss of backwards
>     compatibility by just changing the type completely.
> 
>     I don't particularly care which of the first two options are taken -- and
>     the first even has the benefit of requiring zero labor -- but I think it'd
>     be a bad idea to lose backwards compatibility by taking the third.
> 
>     -Edward
> 
> 
>     On Mon, Nov 21, 2016 at 5:52 PM, Baldur Blöndal <baldurpet at gmail.com>
>     wrote:
> 
>         Does this belong here? Applicative [1] and Alternative [2] instances of
>         StateT have redundant constraints
> 
>         > instance (Functor m, Monad     m) => Applicative (StateT s m)
>         > instance (Functor m, MonadPlus m) => Alternative (StateT s m)
> 
>         The Functor constraint may be removed
> 
>         [1] https://hackage.haskell.org/package/transformers-0.5.2.0/docs/src/
>         Control.Monad.Trans.State.Lazy.html#line-201
>         [2] https://hackage.haskell.org/package/transformers-0.5.2.0/docs/src/
>         Control.Monad.Trans.State.Lazy.html#line-210
> 
>         _______________________________________________
>         Libraries mailing list
>         Libraries at haskell.org
>         http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> 
> 
> 
> 
> 


More information about the Libraries mailing list