From: simonpj Date: Mon, 17 Feb 2003 15:13:56 +0000 (+0000) Subject: [project @ 2003-02-17 15:13:56 by simonpj] X-Git-Tag: nhc98-1-18-release~733 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=9e8f5f0cfba9ca5ebb847704573617a2ddf908f2;p=ghc-base.git [project @ 2003-02-17 15:13:56 by simonpj] Wibbles to ST Monad methods; I forget why --- diff --git a/GHC/ST.lhs b/GHC/ST.lhs index ab1a1b1..65bf835 100644 --- a/GHC/ST.lhs +++ b/GHC/ST.lhs @@ -45,14 +45,14 @@ instance Monad (ST s) where {-# INLINE return #-} {-# INLINE (>>) #-} {-# INLINE (>>=) #-} - return x = ST $ \ s -> (# s, x #) - m >> k = m >>= \ _ -> k + return x = ST (\ s -> (# s, x #)) + m >> k = m >>= \ _ -> k (ST m) >>= k - = ST $ \ s -> + = ST (\ s -> case (m s) of { (# new_s, r #) -> case (k r) of { ST k2 -> - (k2 new_s) }} + (k2 new_s) }}) data STret s a = STret (State# s) a