-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | testing list fusion for success
--   
--   This package provides a function <tt>fuseThis</tt> that can be wrapped
--   around a list. If that list is fused away, all is well. If not, a
--   runtime error will occur.
@package list-fusion-probe
@version 0.1.0.7


module Data.List.Fusion.Probe

-- | This function can be wrapped around a list that should be compiled
--   away by list fusion. If it does, this function will disappear. If not,
--   it will throw an error at runtime.
--   
--   <pre>
--   main = print $ foldl (+) 0 (fuseThis [0..1000])
--   </pre>
--   
--   Will print <tt>Test: fuseList: List did not fuse</tt>, while
--   
--   <pre>
--   main = print $ foldr (+) 0 (fuseThis [0..1000])
--   </pre>
--   
--   will print <tt>500500</tt>.
--   
--   (These examples are from the time before GHC-7.10. Since then,
--   <a>foldl</a> fuses as well.)
fuseThis :: [a] -> [a]
