Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 34 lines (27 sloc) 1.041 kB
fccc685 Initial open-source release
MLstate authored
1 (*
2 Copyright © 2011 MLstate
3
4 This file is part of OPA.
5
6 OPA is free software: you can redistribute it and/or modify it under the
7 terms of the GNU Affero General Public License, version 3, as published by
8 the Free Software Foundation.
9
10 OPA is distributed in the hope that it will be useful, but WITHOUT ANY
11 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12 FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
13 more details.
14
15 You should have received a copy of the GNU Affero General Public License
16 along with OPA. If not, see <http://www.gnu.org/licenses/>.
17 *)
18 module Make (Ord: OrderedTypeSig.S) =
19 struct
20 module M = BaseMap.Make (Ord)
21 include M
22 let append k v m =
23 add k (match find_opt k m with
24 | Some l -> v :: l
25 | _ -> [v]
26 ) m
27
28 let fold_elt f acc m =
29 fold (fun k l acc -> List.fold_left (fun acc v -> f acc k v) acc l) m acc
30
31 let append_left m1 m2 =
32 fold_elt (fun m k v -> append k v m) m1 m2
33 end
Something went wrong with that request. Please try again.