1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# 1 "Camomile/public/uMap.ml"
(** Maps over Unicode characters. *)
include IMap
let umap_of_imap m = m
let imap_of_umap m = m
let add ?eq u v m = IMap.add ?eq (UChar.uint_code u) v m
let add_range ?eq u1 u2 v m =
IMap.add_range ?eq (UChar.uint_code u1) (UChar.uint_code u2) v m
let find u m = IMap.find (UChar.uint_code u) m
let remove u m = IMap.remove (UChar.uint_code u) m
let remove_range u1 u2 m =
IMap.remove_range (UChar.uint_code u1) (UChar.uint_code u2) m
let from u m = IMap.from (UChar.uint_code u) m
let after u m = IMap.after (UChar.uint_code u) m
let until u m = IMap.until (UChar.uint_code u) m
let before u m = IMap.before (UChar.uint_code u) m
let mem u m = IMap.mem (UChar.uint_code u) m
let iter f m =
let f' n = f (UChar.chr_of_uint n) in
IMap.iter f' m
let iter_range f m =
let f' n1 n2 =
f (UChar.chr_of_uint n1) (UChar.chr_of_uint n2) in
IMap.iter_range f' m
let fold f m a =
let f' n v a = f (UChar.chr_of_uint n) v a in
IMap.fold f' m a
let fold_range f m a =
let f' n1 n2 v a =
f (UChar.chr_of_uint n1) (UChar.chr_of_uint n2) v a in
IMap.fold_range f' m a
let mapi ?eq f m =
let f' n v = f (UChar.chr_of_uint n) v in
IMap.mapi ?eq f' m
let set_to_map s = IMap.set_to_map (USet.iset_of_uset s)
let domain m = USet.uset_of_iset (IMap.domain m)
let map_to_set p m = USet.uset_of_iset (IMap.map_to_set p m)