let map = |m: Map<'a, 'b>, f: fn(kv: ('a, 'b)) -> ('c, 'd) throws 'e| -> Map<'c, 'd> throws 'e 'map_map;
let filter = |m: Map<'a, 'b>, f: fn(kv: ('a, 'b)) -> bool throws 'e| -> Map<'a, 'b> throws 'e 'map_filter;
let filter_map = |m: Map<'a, 'b>, f: fn(kv: ('a, 'b)) -> Option<('c, 'd)> throws 'e| -> Map<'c, 'd> throws 'e 'map_filter_map;
let fold = |m: Map<'a, 'b>, init: 'c, f: fn(acc: 'c, kv: ('a, 'b)) -> 'c throws 'e| -> 'c throws 'e 'map_fold;
let len = |m: Map<'a, 'b>| -> i64 'map_len;
let get = |m: Map<'a, 'b>, k: 'a| -> Option<'b> 'map_get;
let get_or = |m: Map<'a, 'b>, k: 'a, default: 'b| -> 'b 'map_get_or;
let insert = |m: Map<'a, 'b>, k: 'a, v: 'b| -> Map<'a, 'b> 'map_insert;
let change = |m: Map<'a, 'b>, k: 'a, default: 'b, f: fn(v: 'b) -> 'b| -> Map<'a, 'b> 'map_change;
let remove = |m: Map<'a, 'b>, k: 'a| -> Map<'a, 'b> 'map_remove;
let iter = |m: Map<'a, 'b>| -> ('a, 'b) 'map_iter;
let iterq = |#clock: Any, m: Map<'a, 'b>| -> ('a, 'b) 'map_iterq