
+1
I don't know about *serious* use, but there are at least a few
packages that would need modification if it goes away. The ones I was
able to find in not too many minutes of searching:
It shows up in type signatures in
* lens: Control.Lens.Plated, Control.Lens.Traversal,
Control.Lens.IndexedTraversal, and Control.Lens.Wrapped
* base-orphans: Data.Orphans
It has instances (which would have to be removed) in
* semigroupoids: Data.Functor.Alt, Data.Functor.Apply,
Data.Functor.Bind, Data.Functor.Plus
* pointed: Data.Pointed
Among the GHC boot libraries, it appears to be used only in
containers, which only uses it for old base versions.
On Wed, Apr 25, 2018 at 9:11 PM, Andrew Martin
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.
-- -Andrew Thaddeus Martin