a mood-tracker for myself
at main 476 B view raw
1open Base 2 3type ('a, 'b) t = { tree : ('a, 'b) Avltree.t; cmp : 'a -> 'a -> int } 4 5let create ~cmp = { tree = Avltree.empty; cmp } 6 7let add t ~key ~data = 8 { 9 t with 10 tree = 11 Avltree.add t.tree ~replace:true ~compare:t.cmp ~added:(ref true) ~key 12 ~data; 13 } 14 15let remove t ~key = 16 { t with tree = Avltree.remove t.tree key ~removed:(ref true) ~compare:t.cmp } 17 18let find t ~key = Avltree.find t.tree key ~compare:t.cmp 19let iter t ~f = Avltree.iter t.tree ~f