From 9e8f5f0cfba9ca5ebb847704573617a2ddf908f2 Mon Sep 17 00:00:00 2001 From: simonpj Date: Mon, 17 Feb 2003 15:13:56 +0000 Subject: [PATCH] [project @ 2003-02-17 15:13:56 by simonpj] Wibbles to ST Monad methods; I forget why --- GHC/ST.lhs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 -- 1.7.10.4