foldl and foldr