2018-10-23 22:13:47 +00:00
|
|
|
(* (c) 2018 Hannes Mehnert, all rights reserved *)
|
|
|
|
|
2018-09-28 20:44:38 +00:00
|
|
|
open Vmm_core
|
|
|
|
|
|
|
|
type 'a t
|
|
|
|
|
|
|
|
val empty : 'a t
|
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val insert : Name.t -> 'a -> 'a t -> 'a t * 'a option
|
2018-09-28 20:44:38 +00:00
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val remove : Name.t -> 'a t -> 'a t
|
2018-09-28 20:44:38 +00:00
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val find : Name.t -> 'a t -> 'a option
|
2018-09-28 20:44:38 +00:00
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val collect : Name.t -> 'a t -> (Name.t * 'a) list
|
2018-09-28 20:44:38 +00:00
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val all : 'a t -> (Name.t * 'a) list
|
2018-10-12 23:05:21 +00:00
|
|
|
|
2018-11-11 00:21:12 +00:00
|
|
|
val fold : Name.t -> 'a t -> (Name.t -> 'a -> 'b -> 'b) -> 'b -> 'b
|