The type is:
foldl :: (a -> b -> a) -> a -> [b] -> a
Eg I might do something like this:
foldl (+) 0 [1..10]
so taking (a -> b -> a)
leftmost a is (+)
b is 0
right a is what? The first value in the list?
Then -> ?
[b] ? Is this like the temporary recursion calculation?
final -> a is the result?