Why do List.fold_left and List.fold_right have different signatures?
List.fold_left
('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
List.fold_right
('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
With fold_left I can use something like this:
let x = list |> List.fold_left (+) 0
But I can't with fold_right.