sig
module type ItemEq =
sig
type t
val eq : Table.ItemEq.t -> Table.ItemEq.t -> bool
val to_string : Table.ItemEq.t -> string
end
module type Table =
sig
module I : ItemEq
type item
and 'a table
val create :
('a -> 'a -> bool) * ('a -> string) -> 'a Table.Table.table
val mem : 'a Table.Table.table -> 'a -> bool
val add : 'a Table.Table.table -> 'a -> Table.Table.item -> unit
val rm : 'a Table.Table.table -> 'a -> unit
val lookup : 'a Table.Table.table -> 'a -> Table.Table.item
val rev_lookup : 'a Table.Table.table -> Table.Table.item -> 'a list
val lookup_all : 'a Table.Table.table -> 'a -> Table.Table.item list
val iter :
('a -> Table.Table.item -> unit) -> 'a Table.Table.table -> unit
val eq : 'a Table.Table.table -> 'a -> 'a -> bool
val to_string : 'a Table.Table.table -> 'a -> string
end
module Make :
functor (Item : ItemEq) ->
sig
module I : ItemEq
type item = Item.t
and 'a table
val create :
('a -> 'a -> bool) * ('a -> string) -> 'a Table.Table.table
val mem : 'a Table.Table.table -> 'a -> bool
val add : 'a Table.Table.table -> 'a -> Table.Table.item -> unit
val rm : 'a Table.Table.table -> 'a -> unit
val lookup : 'a Table.Table.table -> 'a -> Table.Table.item
val rev_lookup : 'a Table.Table.table -> Table.Table.item -> 'a list
val lookup_all : 'a Table.Table.table -> 'a -> Table.Table.item list
val iter :
('a -> Table.Table.item -> unit) -> 'a Table.Table.table -> unit
val eq : 'a Table.Table.table -> 'a -> 'a -> bool
val to_string : 'a Table.Table.table -> 'a -> string
end
end