package bap-std

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Universal Heterogeneous Map.

The dictionary can store values of arbitrary type. Only one value of a a given tag can be stored in the map. For example, if you have tag cconv (calling convention) then it is guaranteed that in map there is zero or one value with this tag.

type t = dict

type of map

include Core_kernel.Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader

This function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.

val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t -> t -> int
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val empty : t

an empty instance

val is_empty : t -> bool

is_empty map true if is empty.

val set : t -> 'a tag -> 'a -> t

set map tag x inserts or update

val mem : t -> 'a tag -> bool

mem map tag checks membership

val find : t -> 'a tag -> 'a option

find map tag lookups value

val add : t -> 'a tag -> 'a -> [ `Ok of t | `Duplicate ]

add map tag x adds new value

val change : t -> 'a tag -> ('a option -> 'a option) -> t

change map tag f changes value.

val remove : t -> 'a tag -> t

remove map tag returns a map without a value associated with tag

val to_sequence : t -> (Value.typeid * value) seq

to_sequence dict is a sequence of all tid value entries

val data : t -> value seq

data dict is a sequence of all dict elements

val filter : t -> f:(value -> bool) -> t

filter dict ~f returns a new dict, filtered with f