summaryrefslogtreecommitdiff
path: root/libraries/base/GHC/ST.hs
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/GHC/ST.hs')
-rw-r--r--libraries/base/GHC/ST.hs11
1 files changed, 5 insertions, 6 deletions
diff --git a/libraries/base/GHC/ST.hs b/libraries/base/GHC/ST.hs
index d5320522a5..46c5196c9e 100644
--- a/libraries/base/GHC/ST.hs
+++ b/libraries/base/GHC/ST.hs
@@ -58,16 +58,15 @@ instance Functor (ST s) where
(# new_s, f r #) }
instance Applicative (ST s) where
- pure = return
+ {-# INLINE pure #-}
+ {-# INLINE (*>) #-}
+ pure x = ST (\ s -> (# s, x #))
+ m *> k = m >>= \ _ -> k
(<*>) = ap
instance Monad (ST s) where
- {-# INLINE return #-}
- {-# INLINE (>>) #-}
{-# INLINE (>>=) #-}
- return x = ST (\ s -> (# s, x #))
- m >> k = m >>= \ _ -> k
-
+ (>>) = (*>)
(ST m) >>= k
= ST (\ s ->
case (m s) of { (# new_s, r #) ->