package coq-core

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

Module CString.MapSource

Finite maps on string

include CSig.MapS with type key = t
include CSig.UMapS with type key = t
Sourcetype key = t
Sourcetype +'a t
Sourceval min_binding : 'a t -> key * 'a
Sourceval max_binding : 'a t -> key * 'a
Sourceval split : key -> 'a t -> 'a t * 'a option * 'a t
include CMap.UExtS with type key := key and type 'a t := 'a t and module Set := Set

The underlying Map library

include CSig.UMapS with type key := key with type 'a t := 'a t
Sourceval empty : 'a t
Sourceval is_empty : 'a t -> bool
Sourceval mem : key -> 'a t -> bool
Sourceval add : key -> 'a -> 'a t -> 'a t
Sourceval update : key -> ('a option -> 'a option) -> 'a t -> 'a t
Sourceval singleton : key -> 'a -> 'a t
Sourceval remove : key -> 'a t -> 'a t
Sourceval merge : (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t
Sourceval union : (key -> 'a -> 'a -> 'a option) -> 'a t -> 'a t -> 'a t
Sourceval compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
Sourceval equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
Sourceval iter : (key -> 'a -> unit) -> 'a t -> unit
Sourceval fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
Sourceval for_all : (key -> 'a -> bool) -> 'a t -> bool
Sourceval exists : (key -> 'a -> bool) -> 'a t -> bool
Sourceval filter : (key -> 'a -> bool) -> 'a t -> 'a t
Sourceval partition : (key -> 'a -> bool) -> 'a t -> 'a t * 'a t
Sourceval cardinal : 'a t -> int
Sourceval bindings : 'a t -> (key * 'a) list
Sourceval choose : 'a t -> key * 'a
Sourceval choose_opt : 'a t -> (key * 'a) option
Sourceval find : key -> 'a t -> 'a
Sourceval find_opt : key -> 'a t -> 'a option
Sourceval map : ('a -> 'b) -> 'a t -> 'b t
Sourceval mapi : (key -> 'a -> 'b) -> 'a t -> 'b t
Sourceval get : key -> 'a t -> 'a

Same as find but fails an assertion instead of raising Not_found

Sourceval set : key -> 'a -> 'a t -> 'a t

Same as add, but expects the key to be present, and thus faster.

  • raises Not_found

    when the key is unbound in the map.

Sourceval modify : key -> (key -> 'a -> 'a) -> 'a t -> 'a t

Apply the given function to the binding of the given key.

  • raises Not_found

    when the key is unbound in the map.

Sourceval domain : 'a t -> Set.t

Recover the set of keys defined in the map.

Sourceval bind : (key -> 'a) -> Set.t -> 'a t

bind f s transform the set x1; ...; xn into x1 := f x1; ...; xn := f xn.

Sourceval height : 'a t -> int

An indication of the logarithmic size of a map

Sourceval filter_range : (key -> int) -> 'a t -> 'a t

find_range in_range m Given a comparison function in_range x, that tests if x is below, above, or inside a given range filter_range returns the submap of m whose keys are in range. Note that in_range has to define a continouous range.

Sourceval filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b t

Like map but keeping only bindings mapped to Some

Sourceval of_list : (key * 'a) list -> 'a t

Turns an association list into a map

Sourceval symmetric_diff_fold : (key -> 'a option -> 'a option -> 'b -> 'b) -> 'a t -> 'a t -> 'b -> 'b

symmetric_diff f ml mr acc will efficiently fold over the difference between ml and mr, assumed that they share most of their internal structure. A call to f k vl vr means that if vl is Some, then k exists in ml. Similarly, if vr is Some, then k exists in mr. If both vl and vr are Some, then vl != vr.

Sourcemodule Smart : sig ... end
Sourcemodule Monad (M : CMap.MonadS) : sig ... end
Sourceval fold_left : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

Alias for fold, to easily track where we depend on fold order.

Sourceval fold_right : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

Folding keys in decreasing order.

OCaml

Innovation. Community. Security.