@@ -12,7 +12,7 @@
1212module LinearOps where
1313
1414import Control.Monad (when)
15−import Data.Functor.Identity (Identity)
15+import Data.Functor.Identity (Identity, runIdentity)
1616import Data.Maybe (fromJust)
1717import Prelude
1818 (Monad, Int, (+), ($), (.), return, fmap, even, (>), (<=), (==), (<=),
@@ -453,6 +453,10 @@ readInstance src =
453453 [(x,"")] -> src S.<> x
454454 _ -> P.error "readInstance: no parse"
455455
456+{-# INLINE pureFoldl' #-}
457+pureFoldl' :: Stream Identity Int -> Int
458+pureFoldl' = runIdentity . S.foldl' (+) 0
459+
456460{-# INLINE foldableFoldl' #-}
457461foldableFoldl' :: Stream Identity Int -> Int
458462foldableFoldl' = F.foldl' (+) 0