A map that folds in new values.
An example would be a multi-map in which a key is initialized with the empty list as its value, and adding a new key/value pair appends the value to the key's list.
Same as above but builds the sexp_of and of_sexp functions. Requires the
passed in types to be sexpable.
Polymorphic fold take a