package binsec

  1. Overview
  2. Docs

doc/binsec.symbolic/Binsec_symbolic/Default/Expr/Hmap/index.html

Module Expr.Hmap

type !'a t
val empty : 'a t
val add : ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'a t -> 'a t
val singleton : ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'a t
val union_eq : (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'a -> 'a) -> 'a t -> 'a t -> 'a t

union_eq f m m' is equivalent to merge (fun k d d' -> match d, d' with | None, _ -> d' | _, None -> d | Some a, Some a' -> if a == a' then d else Some (f k a a')) m m'

val union_map_eq : (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'a -> 'a) -> (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'a) -> 'a t -> 'a t -> 'a t

union_map_eq f g m m' is equivalent to merge (fun k d d' -> match d, d' with | None, None -> assert false | None, Some a' -> Some (g k a') | Some a, None -> Some (g k a) | Some a, Some a' -> if a == a' then d else Some (f k a a')) m m'

val freeze : 'a t -> unit
val bindings : 'a t -> (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t * 'a) list
val choose : 'a t -> ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t * 'a
val mem : ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a t -> bool
val find : ([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a t -> 'a
val iter : (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> unit) -> 'a t -> unit
val fold : (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'acc -> 'acc) -> 'a t -> 'acc -> 'acc
val map : ('a -> 'b) -> 'a t -> 'b t
val mapi : (([ `Exp ], string, [ `Some ] Binsec_symbolic__Default__.Types.Memory.node) Binsec_base.Term.t -> 'a -> 'b) -> 'a t -> 'b t
val is_empty : 'a t -> bool