Andrew Martin
2018-04-26 01:11:12 UTC
Control.Applicative features a type named WrappedMonad that is used to
recover an Applicative instance from a Monad instance. However, since GHC
7.10, it hasn't been possible to write an Monad instance without an
Applicative instance. Consequently, this type is useless (with one caveat
below). I propose removing this type.
Trac Ticket: https://ghc.haskell.org/trac/ghc/ticket/15027
GitHub PR: https://github.com/ghc/ghc/pull/129
On the PR, David Feuer suggests that the type may have some utility
depending on whether the monad-of-no-return proposal is accepted (and also
on whether DerivingVia is accepted, but this one seems more sure). If Monad
keeps return as a typeclass method, then DerivingVia could be used to
produce an Applicative instance from a Monad instance. If anyone knows the
status of this proposal, that could be helpful. This aside, all indication
of approval or disapproval of this proposal are welcome. Also, I'd really
love to know if anyone is even using this type.
recover an Applicative instance from a Monad instance. However, since GHC
7.10, it hasn't been possible to write an Monad instance without an
Applicative instance. Consequently, this type is useless (with one caveat
below). I propose removing this type.
Trac Ticket: https://ghc.haskell.org/trac/ghc/ticket/15027
GitHub PR: https://github.com/ghc/ghc/pull/129
On the PR, David Feuer suggests that the type may have some utility
depending on whether the monad-of-no-return proposal is accepted (and also
on whether DerivingVia is accepted, but this one seems more sure). If Monad
keeps return as a typeclass method, then DerivingVia could be used to
produce an Applicative instance from a Monad instance. If anyone knows the
status of this proposal, that could be helpful. This aside, all indication
of approval or disapproval of this proposal are welcome. Also, I'd really
love to know if anyone is even using this type.
--
-Andrew Thaddeus Martin
-Andrew Thaddeus Martin