21 type ('a, 'b) assoc_list = ('a, 'b) Types.prod List.list
23 (** val assoc_list_add :
24 ('a1, 'a2) Types.prod -> ('a1, 'a2) assoc_list -> ('a1, 'a2) Types.prod
26 let assoc_list_add el al =
29 (** val assoc_list_exists :
30 'a1 -> ('a1 -> 'a1 -> Bool.bool) -> ('a1, 'a2) Types.prod List.list ->
32 let rec assoc_list_exists a eq = function
33 | List.Nil -> Bool.False
34 | List.Cons (hd, tl) ->
35 Bool.orb (eq hd.Types.fst a) (assoc_list_exists a eq tl)
37 (** val assoc_list_lookup :
38 'a1 -> ('a1 -> 'a1 -> Bool.bool) -> ('a1, 'a2) Types.prod List.list ->
40 let rec assoc_list_lookup a eq = function
41 | List.Nil -> Types.None
42 | List.Cons (hd, tl) ->
43 (match eq hd.Types.fst a with
44 | Bool.True -> Types.Some hd.Types.snd
45 | Bool.False -> assoc_list_lookup a eq tl)