Index of values

A
apply_box [Bindlib]

apply_box bf ba applies the boxed function bf to a boxed argument ba inside the 'a box type.

B
bind_apply [Bindlib]

bind_apply bb barg substitute the boxed binder bb with the boxed value barb in the box type.

bind_mvar [Bindlib]

bind_mvar xs b binds the variables of xs in b to get a boxed binder.

bind_var [Bindlib]

bind_var x b binds the variable x in b to produce a boxed binder.

binder_closed [Bindlib]

binder_closed b test whether the binder b is closed (i.e., does not contain any free variable).

binder_compose [Bindlib]

binder_compose b f postcomposes the binder b with the function f.

binder_constant [Bindlib]

binder_constant b tests whether the binder b is constant (i.e., its bound variable does not occur).

binder_name [Bindlib]

binder_name returns the name of the variable bound by the binder.

binder_occur [Bindlib]

binder_occur b tests whether the bound variable occurs in b.

binder_rank [Bindlib]

binder_rank b gives the number of free variables contained in b.

box [Bindlib]

box e injects the value e into the 'a box type, assuming that it is closed.

box_apply [Bindlib]

box_apply f ba applies the function f to a boxed argument ba.

box_apply2 [Bindlib]

box_apply2 f ba bb applies the function f to two boxed arguments ba and bb.

box_apply3 [Bindlib]

box_apply3 is similar to box_apply2.

box_apply4 [Bindlib]

box_apply4 is similar to box_apply2 and box_apply3.

box_array [Bindlib]

box_array bs shifts the array type of bs into the box.

box_binder [Bindlib]

box_binder f b boxes the binder b using the boxing function f.

box_list [Bindlib]

box_list bs shifts the list type of bs into the box.

box_mbinder [Bindlib]

box_mbinder f b boxes the multiple binder b using the boxings function f.

box_opt [Bindlib]

box_opt bo shifts the option type of bo into the box.

box_pair [Bindlib]

box_pair ba bb is the same as box_apply2 (fun a b -> (a,b)) ba bb.

box_rev_list [Bindlib]

box_rev_list bs is similar to box_list bs, but the produced boxed list is reversed (it is hence more efficient).

box_triple [Bindlib]

box_trible is similar to box_pair, but for triples.

box_var [Bindlib]

box_var x builds a 'a box from the 'a var x.

C
compare_vars [Bindlib]

compare_vars x y safely compares x and y.

copy_var [Bindlib]

copy_var x mkfree name makes a copy of variable x, with a potentially different name and mkfree function.

D
dummy_box [Bindlib]

dummy_box can be used for initialising structures like arrays.

E
empty_ctxt [Bindlib]

empty_ctxt denotes the empty context.

eq_binder [Bindlib]

eq_binder eq f g tests the equality between f and g.

eq_mbinder [Bindlib]

eq_mbinder eq f g tests the equality of the two multiple binders f and g.

eq_vars [Bindlib]

eq_vars x y safely computes the equality of x and y.

H
hash_var [Bindlib]

hash_var x computes a hash for variable x.

I
is_closed [Bindlib]

is_closed b checks whether the box b is closed.

L
lift_box [Bindlib.Lift2]
lift_box [Bindlib.Lift]
M
map [Bindlib.Map2]
map [Bindlib.Map]
mbind_apply [Bindlib]

mbind_apply bb bargs substitute the boxed binder bb with a boxed array of values barbs in the box type.

mbinder_arity [Bindlib]

mbinder_arity b gives the arity of the mbinder.

mbinder_closed [Bindlib]

mbinder_closed b indicates whether b is closed.

mbinder_compose [Bindlib]

mbinder_compose b f postcomposes the multiple binder b with f.

mbinder_constant [Bindlib]

mbinder_constant b indicates whether the mbinder b is constant.

mbinder_names [Bindlib]

mbinder_names b return the array of the names of the variables bound by the mbinder b.

mbinder_occurs [Bindlib]

mbinder_occurs b returns an array of bool indicating if the variables that are bound occur (i.e., are used).

mbinder_rank [Bindlib]
msubst [Bindlib]

msubst b vs substitutes the variables bound by b with the values vs.

N
name_of [Bindlib]

name_of x returns a printable name for variable x.

names_of [Bindlib]

names_of xs returns printable names for the variables of xs.

new_mvar [Bindlib]

new_mvar mkfree names creates a new array of variables using a function mkfree (see new_var) and a name.

new_mvar_in [Bindlib]

new_mvar_in ctxt mkfree names is similar to new_mvar mkfree names, but it handles the context (see new_var_in).

new_var [Bindlib]

new_var mkfree name creates a new variable using a function mkfree and a name.

new_var_in [Bindlib]

new_var_in ctxt mkfree name is similar to new_var mkfree name, but the variable names is chosen not to collide with the context ctxt.

O
occur [Bindlib]

occur x b tells whether variable x occurs in the box b.

R
raw_binder [Bindlib]

raw_binder name bind rank mkfree value builds a binder using the value function as its definition.

raw_mbinder [Bindlib]

raw_mbinder names binds rank value is similar to raw_binder, but it is applied to a multiple binder.

reset_counter [Bindlib]

reset_counter () resets the unique identifier counter on which Bindlib relies.

S
subst [Bindlib]

subst b v substitutes the variable bound by b with the value v.

U
uid_of [Bindlib]

uid_of x returns a unique identifier of the given variable.

uids_of [Bindlib]

uids_of xs returns the unique identifiers of the variables of xs.

unbind [Bindlib]

unbind b substitutes the binder b using a fresh variable.

unbind2 [Bindlib]

unbind2 f g is similar to unbind f, but it substitutes two binders f and g at once using the same fresh variable.

unbind_in [Bindlib]

unbind_in ctxt b is similar to unbind b, but it handles the context as explained in the documentation of new_mvar_in.

unbox [Bindlib]

unbox e can be called when the construction of a term is finished (e.g., when the desired variables have all been bound).

unmbind [Bindlib]

unmbind b substitutes the multiple binder b with fresh variables.

unmbind2 [Bindlib]

unmbind2 f g is similar to unmbind f, but it substitutes two multiple binder f and g at once, using the same fresh variables.

unmbind_in [Bindlib]

unmbind_in ctxt b is like unmbind b, but it handles the context as is explained in the documentation of new_mvar_in.