summaryrefslogtreecommitdiff
path: root/libraries/base/Control/Applicative.hs
diff options
context:
space:
mode:
authorHerbert Valerio Riedel <hvr@gnu.org>2015-10-08 16:34:17 +0200
committerHerbert Valerio Riedel <hvr@gnu.org>2015-10-10 15:10:29 +0200
commitdb60084d738621b13835af2444bdf8c50013bf65 (patch)
tree431850660b8bb1472c4ca43c3407c446101bd37d /libraries/base/Control/Applicative.hs
parentf64f7c36ef9395da1cc7b686aaf1b019204cd0fc (diff)
downloadhaskell-wip/D1316.tar.gz
base: MRP-refactoring of AMP instanceswip/D1316
Summary: This refactors (>>)/(*>)/return/pure methods into normalform. The redundant explicit `return` method definitions are dropped altogether. This results in measurable runtime improvements in nofib of up to -20% runtime (geometric mean: -7%) in my measurements. Reviewers: quchen, austin, alanz, bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1316
Diffstat (limited to 'libraries/base/Control/Applicative.hs')
-rw-r--r--libraries/base/Control/Applicative.hs2
1 files changed, 1 insertions, 1 deletions
diff --git a/libraries/base/Control/Applicative.hs b/libraries/base/Control/Applicative.hs
index a2f342f83f..6770234926 100644
--- a/libraries/base/Control/Applicative.hs
+++ b/libraries/base/Control/Applicative.hs
@@ -96,7 +96,7 @@ instance Monad m => Functor (WrappedMonad m) where
fmap f (WrapMonad v) = WrapMonad (liftM f v)
instance Monad m => Applicative (WrappedMonad m) where
- pure = WrapMonad . return
+ pure = WrapMonad . pure
WrapMonad f <*> WrapMonad v = WrapMonad (f `ap` v)
instance MonadPlus m => Alternative (WrappedMonad m) where