Canonicalise `MonadPlus` instances
authorHerbert Valerio Riedel <hvr@gnu.org>
Fri, 1 Jan 2016 00:45:08 +0000 (01:45 +0100)
committerHerbert Valerio Riedel <hvr@gnu.org>
Fri, 1 Jan 2016 00:55:16 +0000 (01:55 +0100)
commitdafeb51f266793a67e8ae18ae39a2e2e87943824
treef1ef3abd7fc655e6b8896a6841f0efd9a39a39fe
parent8afeaad919dc67643b4eff14efafb48b59039b2b
Canonicalise `MonadPlus` instances

This refactoring exploits the fact that since AMP, in most cases,
`instance MonadPlus` can be automatically derived from the respective
`Alternative` instance.  This is because `MonadPlus`'s default method
implementations are fully defined in terms of `Alternative(empty, (<>))`.
compiler/prelude/PrelRules.hs
compiler/simplCore/CoreMonad.hs
compiler/types/Unify.hs
compiler/utils/IOEnv.hs
compiler/utils/MonadUtils.hs
libraries/base/Control/Arrow.hs
libraries/base/Data/Semigroup.hs
libraries/base/GHC/Conc/Sync.hs
libraries/base/Text/ParserCombinators/ReadP.hs
libraries/base/Text/ParserCombinators/ReadPrec.hs