Module Term_dnet.Make


module Ident : IDENT
module Opt : OPT


type t
type ident = Ident.t
val empty : t
val add : Constr.constr -> ident -> t -> t

add c i dn adds the binding (c,i) to dn. c can be a closed term or a pattern (with untyped Evars). No Metas accepted

val union : t -> t -> t

merge of dnets. Faster than re-adding all terms

val subst : Mod_subst.substitution -> t -> t
val search_pattern : t -> Constr.constr -> ident list

search_pattern dn c returns all terms/patterns in dn matching/matched by c

val find_all : t -> ident list

find_all dn returns all idents contained in dn

val map : (ident -> ident) -> t -> t
val refresh_metas : t -> t