diff options
| author | Austin Seipp <austin@well-typed.com> | 2014-04-22 06:09:40 -0500 |
|---|---|---|
| committer | Austin Seipp <austin@well-typed.com> | 2014-09-09 08:13:27 -0500 |
| commit | d94de87252d0fe2ae97341d186b03a2fbe136b04 (patch) | |
| tree | 1cac19f2786b1d8a1626886cd6373946a3a276b0 /libraries/base/Data/Proxy.hs | |
| parent | fdfe6c0e50001add357475a1a3a7627243a28a70 (diff) | |
| download | haskell-d94de87252d0fe2ae97341d186b03a2fbe136b04.tar.gz | |
Make Applicative a superclass of Monad
Summary:
This includes pretty much all the changes needed to make `Applicative`
a superclass of `Monad` finally. There's mostly reshuffling in the
interests of avoid orphans and boot files, but luckily we can resolve
all of them, pretty much. The only catch was that
Alternative/MonadPlus also had to go into Prelude to avoid this.
As a result, we must update the hsc2hs and haddock submodules.
Signed-off-by: Austin Seipp <austin@well-typed.com>
Test Plan: Build things, they might not explode horribly.
Reviewers: hvr, simonmar
Subscribers: simonmar
Differential Revision: https://phabricator.haskell.org/D13
Diffstat (limited to 'libraries/base/Data/Proxy.hs')
| -rw-r--r-- | libraries/base/Data/Proxy.hs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libraries/base/Data/Proxy.hs b/libraries/base/Data/Proxy.hs index ab89066cfa..38a43b0b0f 100644 --- a/libraries/base/Data/Proxy.hs +++ b/libraries/base/Data/Proxy.hs @@ -69,10 +69,21 @@ instance Bounded (Proxy s) where minBound = Proxy maxBound = Proxy +instance Monoid (Proxy s) where + mempty = Proxy + mappend _ _ = Proxy + mconcat _ = Proxy + instance Functor Proxy where fmap _ _ = Proxy {-# INLINE fmap #-} +instance Applicative Proxy where + pure _ = Proxy + {-# INLINE pure #-} + _ <*> _ = Proxy + {-# INLINE (<*>) #-} + instance Monad Proxy where return _ = Proxy {-# INLINE return #-} |
