links

The Links Programming Language
IN THIS PACKAGE
Module Links_core . Env . String
type name = string

The type of names.

type 'a t

The type of environments.

val empty : 'a t

The empty environment.

val singleton : name -> 'a -> 'a t

Create an environment with a single entry.

val bind : name -> 'a -> 'a t -> 'a t

Extend an environment with a new entry.

val unbind : name -> 'a t -> 'a t

Remove an entry from an environment.

val extend : 'a t -> 'a t -> 'a t

Extend an environment with another. Bindings from the right shadow bindings from the left.

val has : name -> 'a t -> bool

Whether a particular name is in an environment

val find : name -> 'a t -> 'a

Look up a name in an environment. Raise NotFound name if the name is not present.

val find_opt : name -> 'a t -> 'a option

Look up a name in an environment. Return None if the name is not present.

module Dom = Utility.StringSet

Sets of names.

val domain : 'a t -> Dom.t

The domain of an environment

val range : 'a t -> 'a list

The range of an environment

val bindings : 'a t -> (name * 'a) list
val map : ( 'a -> 'b ) -> 'a t -> 'b t
val iter : ( name -> 'a -> unit ) -> 'a t -> unit
val fold : ( name -> 'a -> 'b -> 'b ) -> 'a t -> 'b -> 'b
val filter : ( name -> 'a -> bool ) -> 'a t -> 'a t
val filter_map : ( name -> 'a -> 'b option ) -> 'a t -> 'b t
val complement : 'a t -> 'a t -> 'a t

Computes the relative complement B \ A