title: Map.fold in OCaml
body: <p>I was reading the documentation for <code>Map.fold</code> from the following <a href="https://caml.inria.fr/pub/docs/manual-ocaml/libref/Map.Make.html" rel="nofollow noreferrer">link</a>:</p>
  
  <p><code>val fold : (key -&gt; 'a -&gt; 'b -&gt; 'b) -&gt; 'a t -&gt; 'b -&gt; 'b</code></p>
  
  <p>Is this function similar to <code>List.fold_left</code>? I'm a neophyte to OCaml and find the description of arguments for functions difficult to parse. My understanding is that <code>Map.fold</code> applies a function to entries in a map and then stores those entries in a new map, or some kind of accumulator. Is this a correct understanding? I know that <code>'a</code> signifies a value of any type - does <code>'b</code> signify a new value transformed by a function? </p>