Neil Brown-7 wrote: > > step is of type b -> (a -> a) -> (a -> a), which does agree with (a -> b > -> b)
Not quite right.. Let's rewite the function: myFoldl f z xs = foldr (step f) id xs z step f x g = \a -> g (f a x) now (from ghci): step (+) :: (Num t1) => t1 -> (t1 -> t3) -> t1 -> t3 or even: step (flip (:)) :: t -> ([t] -> t3) -> [t] -> t3 But yes, the type from my first post was wrong -- View this message in context: http://old.nabble.com/foldl-in-terms-of-foldr-tp27322307p27325072.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe