From d43d63f50f7359f30bc65af3d286042dd4dd1c1d Mon Sep 17 00:00:00 2001 From: Andrew Farmer Date: Thu, 7 Mar 2013 18:13:03 -0600 Subject: [PATCH] Fix thunk leak in CoreM's CoreWriter --- compiler/simplCore/CoreMonad.lhs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/compiler/simplCore/CoreMonad.lhs b/compiler/simplCore/CoreMonad.lhs index 3afb8cdf5d29..e11c139e8531 100644 --- a/compiler/simplCore/CoreMonad.lhs +++ b/compiler/simplCore/CoreMonad.lhs @@ -762,7 +762,8 @@ instance Monad CoreM where mx >>= f = CoreM $ \s -> do (x, s', w1) <- unCoreM mx s (y, s'', w2) <- unCoreM (f x) s' - return (y, s'', w1 `plusWriter` w2) + let w = w1 `plusWriter` w2 -- forcing w before returning avoids a space leak (Trac #7702) + return $ seq w (y, s'', w) instance Applicative CoreM where pure = return