Maps over Unicode characters.
map ?eq f m and mapi ?eq f m : Similar to map and mapi
in stdlib Map, but if the map m' is returned, it is only guaranteed
that eq (find u m') (f (find u m )) is true for map and
eq (find u m') (f u (find u m )) is true for mapi. If eq is
not specified, structural equality is used.
fold_range f m x is equivalent to
f u_(2n) u_(2n+1) v_n (... (f u_1 u_2 v_1 x)) where all characters in
the range u_(2k)-u_(2k+1) are mapped to v_k and
u_1 < u_3 < ... in code point order.
For each range u_(2k)-u_(2k+1) is separated by a character
which is not mapped to v_k.