sig
type ('a, 'typ, 'b) t
val empty : ('a, 'typ, 'b) Syntax.Expr.Map.t
val is_empty : ('a, 'typ, 'b) Syntax.Expr.Map.t -> bool
val add :
('a, 'typ) Syntax.expr ->
'b ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ, 'b) Syntax.Expr.Map.t
val remove :
('a, 'typ) Syntax.expr ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ, 'b) Syntax.Expr.Map.t
val filter :
(('a, 'typ) Syntax.expr -> 'b -> bool) ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ, 'b) Syntax.Expr.Map.t
val filter_map :
(('a, 'typ) Syntax.expr -> 'b -> 'c option) ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ, 'c) Syntax.Expr.Map.t
val map :
('b -> 'c) ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ, 'c) Syntax.Expr.Map.t
val find : ('a, 'typ) Syntax.expr -> ('a, 'typ, 'b) Syntax.Expr.Map.t -> 'b
val keys :
('a, 'typ, 'b) Syntax.Expr.Map.t -> ('a, 'typ) Syntax.expr BatEnum.t
val values : ('a, 'typ, 'b) Syntax.Expr.Map.t -> 'b BatEnum.t
val enum :
('a, 'typ, 'b) Syntax.Expr.Map.t ->
(('a, 'typ) Syntax.expr * 'b) BatEnum.t
val merge :
(('a, 'typ) Syntax.expr -> 'b option -> 'c option -> 'd option) ->
('a, 'typ, 'b) Syntax.Expr.Map.t ->
('a, 'typ, 'c) Syntax.Expr.Map.t -> ('a, 'typ, 'd) Syntax.Expr.Map.t
val fold :
(('a, 'typ) Syntax.expr -> 'b -> 'c -> 'c) ->
('a, 'typ, 'b) Syntax.Expr.Map.t -> 'c -> 'c
end