From c5d62883b3a7c93c28017b57f81165b6f71d9340 Mon Sep 17 00:00:00 2001 From: Matthew Pickering Date: Tue, 4 Oct 2016 22:36:55 +0100 Subject: Mark zipWithAndUnzipM as INLINABLE rather than INLINE It is a self-recursive function and hence a loop-breaker. --- compiler/utils/MonadUtils.hs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/utils/MonadUtils.hs b/compiler/utils/MonadUtils.hs index d1c0adb456..93a835e04e 100644 --- a/compiler/utils/MonadUtils.hs +++ b/compiler/utils/MonadUtils.hs @@ -93,7 +93,7 @@ zipWith4M f (x:xs) (y:ys) (z:zs) (a:as) zipWithAndUnzipM :: Monad m => (a -> b -> m (c, d)) -> [a] -> [b] -> m ([c], [d]) -{-# INLINE zipWithAndUnzipM #-} +{-# INLINABLE zipWithAndUnzipM #-} -- See Note [flatten_many performance] in TcFlatten for why this -- pragma is essential. zipWithAndUnzipM f (x:xs) (y:ys) -- cgit v1.2.1