Re: [Haskell-cafe] List Fusion of concatMap

2011-12-01 Thread Joachim Breitner
Hi, Am Donnerstag, den 01.12.2011, 22:16 +0100 schrieb Joachim Breitner: > This would motivate the following definition for a fusionable concatMap, > going via list comprehensions and their translation to ideal list fusion > consumers/producers: > >concatMap f xs > == [ y | x <- xs, y <- f x

Re: [Haskell-cafe] List Fusion of concatMap

2011-12-01 Thread Joachim Breitner
Hi, Am Donnerstag, den 01.12.2011, 21:44 +0100 schrieb Joachim Breitner: > Does ghc treat list comprehensions differently here? I could answer this by looking at compiler/deSugar/DsListComp.lhs in the GHC source: List comprehensions may be desugared in one of two ways: ``ordinary

[Haskell-cafe] List Fusion of concatMap

2011-12-01 Thread Joachim Breitner
Hi, in further attempts to get a better understanding of list fusion, I am investigating under what conditions, calls to concat and concatMap succesfully fusion away. Here is my test code: import System.Exit func0 :: Int -> Bool func0 n = any (>5) [1..n] {-# NOINLINE func0 #-} func1 :: Int ->