Index of values


( !* ) [Types]
This is Lazy.force.
(!!) [Types]
Asserts that this type is actually a TyOpen.
(!!=) [Types]
Asserts that this type is actually a TySingleton (TyOpen ...).
(>>=) [Derivations]
Use this operator to chain the premises of a rule in a monadic style.
(>>=) [Types]
bind for the option monad.
(>>~) [Derivations]
Perform an operation on the env part of a state without giving any justification for it.
(@->) [Types]
An arrow.
(^=>) [Types]
The standard implication connector, with the right associativity.
(|>) [Types]
The pipe operator.
(|||) [Types]
either operator for the option monad

A
add [Permissions]
add env var t adds t to the list of permissions for p, performing all the necessary legwork.
add [Hashcons]
add [GMap.S]
add [GSet.S]
add_hint [Permissions]
add_include_dir [Driver]
add_location [TypeCore]
add_perm [Permissions]
add_perm env t adds a type t with kind PERM to env, returning the new environment.
adopter_field [Mezzo2UntypedMezzo]
all_dependencies [Modules]
allow_exclusive [Fact]
A utility function for extending a fact with the statement ``without any hypotheses, this type is exclusive''.
analyze_data_types [Variance]
Perform variance computations on a set of data types, and return an environment where variances have been updated.
analyze_data_types [FactInference]
analyze_data_types env vars assumes that vars forms a group of mutually recursive algebraic data type definitions.
apply_axiom [Derivations]
This is a way of proving a judgement by using a rule without premises, i.e.
arity [Kind]
arity k is the arity of k, viewed as an arrow kind.
as_arrow [Kind]
as_arrow k transforms the kind k to an n-ary arrow kind.
assert_concrete [Types]
If you know this is a concrete type, extract the branch.
assert_left [Either]
assert_right [Either]
assume [FactInference]
assume env c produces a new environment where the mode constraint c is assumed (i.e., it is added to the environment as a new hypothesis).

B
beprintf [MzString]
Make all your pretty-printers work with buffers, use them with %a and use this to get a Printf.eprintf
bfprintf [MzString]
Make all your pretty-printers work with buffers, use them with %a and use this to get a Printf.fprintf
bind [Option]
Maps None to None and Some x to f x.
bind_data_group_datacons [KindCheck]
bind_data_group_datacons env group extends the environment with bindings for the data constructors of the data group.
bind_data_type_group_in_expr [Expressions]
Used by the type-checker to process local type declarations.
bind_data_type_group_in_toplevel_items [Expressions]
This function processes a data_type_group, and opens the corresponding binders in the toplevel_items that follow.
bind_datacon_parameters [Types]
bind_datacon_parameters env k ts takes the kind of the parent data type k, its branches ts, and introduces open variables that stand for the data type's parameters in all the branches.
bind_evars [Expressions]
Bind a set of term variables (let-bindings).
bind_external_datacon [KindCheck]
bind_external_name [KindCheck]
bind_flexible [TypeCore]
Bind a flexible type variable.
bind_flexible_before [TypeCore]
Bind a flexible type variables before another one.
bind_flexible_in_type [DeBruijn]
bind_rigid_in_type env binding ty opens the binding binding, whose scope is the type ty, by replacing the bound variable with a new flexible variable.
bind_implementation_types [Exports]
Record exported types and data constructors in an implementation.
bind_implementation_values [Exports]
Record exported values in an implementation.
bind_interface_types [Exports]
Record exported types and data constructors from an interface.
bind_interface_value [Exports]
Record exported values from an interface.
bind_nonlocal [KindCheck]
bind_nonlocal env (x, kind, v) binds the unqualified variable x to the non-local name v, whose kind is kind.
bind_nonlocal_datacon [KindCheck]
bind_patexprs [Expressions]
Bind a set of multiple bindings (and keyword).
bind_rigid [TypeCore]
Bind a rigid type variable.
bind_rigid_in_type [DeBruijn]
bind_rigid_in_type env binding ty opens the binding binding, whose scope is the type ty, by replacing the bound variable with a rigid variable.
bind_vars [Expressions]
Bind a set of type variables (Λ-bindings).
bindings_data_group_types [KindCheck]
bindings_data_group_types group returns a list of bindings for the types of the data group.
biprintf [MzString]
In case you need to ignore some stuff.
bottom [Fact]
The least fact is defined as constant Mode.bottom.
bottom [Mode]
The least element of the lattice.
box [Bash]
Make a title.
bprintf [MzString]
Make all your pretty-printers work with buffers, use them with %a and use this to get a Printf.printf
branch_for_datacon [Types]
Given a resolved_datacon, get the corresponding branch.
branches_for_branch [Types]
Given a branch, get all the other branches of the parent type.
branches_for_datacon [Types]
Given a resolved_datacon, get all the other branches of the parent type.
bsprintf [MzString]
Make all your pretty-printers work with buffers and use this to get a Printf.sprintf
bv [KindCheck]
bv p returns the names bound by the pattern p, in left-to-right order.

C
cardinal [GMap.S]
cardinal [GSet.S]
check [Interfaces]
The second operation related to interfaces consists in checking that an implementation satisfies a given interface.
check [Log]
Assert something, otherwise display an error message and fail
check_declaration_group [TypeChecker]
check_declaration_group env declarations items type-checks a set of top-level declarations; in order to do that, it will end up opening certain binders, which is why it takes a list of items which will be correctly transformed so as to refer to the variables that have been opened.
check_for_duplicates [MzList]
Checking for duplicates in a list.
check_function_call [TypeChecker]
check_implementation [KindCheck]
check_implementation env i checks that the implementation file i is well-formed, i.e.
check_interface [KindCheck]
check_implementation env i checks that the interface file i is well-formed, i.e.
choose [GMap.S]
choose [GSet.S]
clean [TypeCore]
clean env sub_env t tries to clean up t, found in sub_env, so that it makes sense in env, and throws UnboundPoint otherwise
collect [Types]
collect t syntactically separates t into a structural part and a permission part, i.e.
colors [Bash]
They have been chosen arbitrarily out of the 256-color set available.
combine3 [MzList]
Same as List.combine but for triples instead of pairs.
compare [Mode]
Ordering.
compare [Identifier.Make]
compare [GMap.S]
compare [GSet.S]
compare [PersistentUnionFind]
compare [PersistentRef]
complete [Fact]
complete fact completes an incomplete fact (i.e., a mode map whose domain does not contain all modes) so as to obtain a valid fact.
complete [Mode.ModeMap]
compose [Fact]
compose fact facts composes a fact of arity n -- i.e.
concat [LazyList]
conjunction [Fact]
Conjunction of hypotheses.
cons [LazyList]
constant [Fact]
A mode m can be viewed as a fact: every mode m' that is equal to or above m is mapped to true, the empty conjunction, and every mode m' that does not satisfy this is mapped to false.
construct_branch [TypeCore]
Need to translate a branch definition b with nested permissions ps into a type? Use construct_branch b ps.
corestrict [GMap.S]
cps_map [MzList]
A CPS version of List.map.
create [Mark]
create [Hashcons]
create [PersistentUnionFind]
cut [MzList]

D
debug [Log]
Report some debugging information.
debug_level [Log]
diff [GSet.S]
disallow_exclusive [Fact]
A utility function for removing the possibility that ``this type is exclusive''.
disjoint [GSet.S]
dissolve [KindCheck]
dissolve env m has the effect of introducing a new binding of x for every existing binding of m::x.
domain [GMap.S]
domain [InfiniteArray]
domain a is a fresh copy of an initial segment of the array a whose length is extent a.
dont_inline [Utils]
drop_derivation [Permissions]
Drop the derivation information and just get an env option.
duplicable [Fact]
duplicable is implication ModeDuplicable.

E
e_unit [Expressions]
The () (unit) expression.
elements [GSet.S]
empty [KindCheck]
An empty environment.
empty [Interpreter]
empty [GMap.S]
empty [GSet.S]
empty [PersistentRef]
empty_env [TypeCore]
The empty environment.
enable_debug [Log]
Enable debugging information.
endo_map [GMap.S]
enter_module [TypeCore]
Enter another toplevel unit (implementation, interface).
enter_module [KindCheck]
enter_module env m resets env so that it is ready to translate another unit (interface or implementation) named m.
eq [PersistentRef]
equal [Fact]
Equality.
equal [TypeCore]
equal env t1 t2 tells whether t1 and t2 can be determined to be equal in environment env; it raises UnboundPoint is any of these two types doesn't make sense in env.
equal [Mode]
Equality.
equal [Identifier.Make]
equal [Kind]
equal tests the equality of two kinds.
equal [MzList]
Equality of lists, up to equality of elements.
equal [GSet.S]
equals [Mark]
error [Log]
Report a fatal error.
eunloc [Expressions]
Remove any ELocated node in front of an expression.
eval_lone_implementation [Interpreter]
eval_unit [Interpreter]
exists [LazyList]
exit_if_duplicates [MzList]
Checking for duplicates in a list.
expand_if_one_branch [Types]
expand_if_one_branch env t expands t when t is either a type abbreviation, or a data type with one branch.
extend [KindCheck]
extend env bindings iterates over the list bindings, from left to right, and for each binding of the form (x, kind, loc), it extends the environment by binding the unqualified variable x to a new local name whose kind is kind.
extent [InfiniteArray]
extent a is the length of an initial segment of the array a that is sufficiently large to contain all set operations ever performed.
extract [Option]
When you're sure you have Some
extract_constraints [Hoist]

F
fail [Derivations]
If a derivation fails...
fields_for_datacon [Types]
Given a resolved_datacon, get all its fields.
file_get_contents [Utils]
filter [LazyList]
filter_some [MzList]
Turns [Some a; None; ...] into [a; ...]
find [Hashcons]
find [LazyList]
find [GMap.S]
find [PersistentUnionFind]
find_and_instantiate_branch [Types]
Find the branch and substitute the data type's parameters in it.
find_and_remove [GMap.S]
find_branch [TypeCore]
Need to see the branch hidden beneath a type? Use this helper.
find_kind [KindCheck]
find_kind env x returns the kind of the possibly-qualified variable x.
find_nonlocal_variable [KindCheck]
find_nonlocal_variable env x looks up the unqualified variable x in the environment env.
find_opt [MzList]
find_opt [MzMap.S]
same as Map.find but returns a 'a option
find_opti [MzList]
find_qualified_var [Exports]
find_qualified_var env mname x finds name x as exported by module mname.
find_unqualified_var [Exports]
find_unqualified_var env x finds the name x as exported by the current module.
find_variable [KindCheck]
find_variable env x looks up the possibly-qualified variable x in the environment env.
fine_add [GMap.S]
fine_union [GMap.S]
flatten [LazyList]
flatten [Option]
flatten_map [MzList]
flatten_star [Types]
Transform a TyStar into a flat list of permissions.
flavor_for_datacon [Types]
Given a resolved_datacon, get its flavor.
fold [TypeCore]
General fold operation.
fold [GMap.S]
fold [GSet.S]
fold [PersistentUnionFind]
fold [PersistentRef]
fold_definitions [TypeCore]
Fold over all opened type definitions.
fold_exists [Types]
Fold a type under a series of existential bindings.
fold_forall [Types]
Fold a type under a series of universal bindings.
fold_left2i [MzList]
Same as fold_left2 except that the function takes the current index in the list
fold_left3 [MzList]
Same as fold_left2 but with three lists.
fold_lefti [MzList]
Same as fold_left except that the function takes the current index in the list
fold_rev [GMap.S]
fold_righti [MzList]
Same as fold_right except that the function takes the current index in the list.
fold_star [Types]
This function has a special case to make sure it doesn't introduce useless TyEmptys.
fold_terms [TypeCore]
Fold over all opened terms, providing the corresponding var and permissions.
fold_type [TypeErrors]
This is only for display purposes.
fresh_auto_name [Types]
fresh_name [Utils]
fresh_var [Utils]
fst3 [Types]

G
get [PersistentRef]
get [InfiniteArray]
get a i returns the element contained at offset i in the array a.
get_adopts_clause [Types]
get_arity [Types]
get_definition [TypeCore]
Get the definition, if any.
get_exports [KindCheck]
get_exports env returns the list of names that are exported by env.
get_fact [TypeCore]
Get a fact
get_floating_permissions [TypeCore]
Get the list of permissions that are floating in this environment.
get_kind [TypeCore]
Get the kind of any given variable.
get_kind_for_type [Types]
get_location [Types]
get_locations [TypeCore]
Get the locations
get_name [TypeCore]
get_names [TypeCore]
Get the names associated to a variable.
get_number_of_cores [Utils]
get_permissions [TypeCore]
Get the permissions of a term variable.
get_variance [TypeCore]
Get the variance, asserting that this variable is that of a type definition.

H
has_mode [FactInference]
has_mode mode env ty tells whether the predicate mode ty is satisfied, using the information stored in env about the ambient type definitions and mode assumptions.
hash [Identifier.Make]
hd [LazyList]
hoist [Hoist]
html_error [TypeErrors]
...

I
ignore_map [MzList]
Map a function and then discard the result.
implementation [UntypedOCamlPrinter]
implementation [Compile]
implementation [Grammar]
implication [Fact]
implication h m constructs a fact of the form h => m.
implication_only_on_arrow [KindCheck]
This error is detected during the translation towards the internal syntax.
import_flex_instanciations [Permissions]
The safe version of the function found in TypeCore.
import_flex_instanciations_raw [TypeCore]
import_flex_instanciations env sub_env brings into env all the flexible variable instanciations that happened in sub_env without modifying the rest of env.
import_interface [Interfaces]
The first operation related to interfaces consists in importing a given interface into an environment.
index [MzList]
Find the index of the first element in a list that satisfies a predicate.
infer_reset [KindCheck]
infer_reset env ty returns the kind of the type ty.
init [Lexer]
init filename must be called before using the lexer.
init [PersistentUnionFind]
instantiate_flexible [Permissions]
The safe version of the function found in TypeCore.
instantiate_flexible_raw [TypeCore]
instantiate_raw env var t tries to instantiate the flexible variable var with t.
instantiate_type [Types]
instantiate_type t ts substitutes the givens types t0, ..., tn for TyBound 0, ... TyBound n in t.
inter [MzMap.S]
inter m1 m2 keeps the values from m1
inter [GSet.S]
interface [UntypedOCamlPrinter]
interface [Grammar]
internal_print [Fact]
internal_print fact is a textual representation of the fact fact.
interpret [Driver]
interpret is a driver for the interpreter.
is_abbrev [Types]
Determines whether a variable corresponds to a type abbreviation definition.
is_concrete [Types]
Is this a concrete type?
is_duplicable [FactInference]
A specialized version of has_mode.
is_empty [GMap.S]
is_empty [GSet.S]
is_exclusive [FactInference]
A specialized version of has_mode.
is_flexible [TypeCore]
Is this variable a flexible type variable or not?
is_good [Derivations]
This tells whether a result is successful or not.
is_inconsistent [TypeCore]
Is the current environment inconsistent?
is_left [Either]
is_marked [TypeCore]
is_maximal [Fact]
Recognition of maximal facts is not performed.
is_maximal [Mode]
A test for the top element of the lattice.
is_non_bottom [TypeCore]
is_perm [Types]
Has this variable kind perm?
is_right [Either]
is_rigid [TypeCore]
is_singleton [GMap.S]
is_some [Option]
is_star [Types]
Calls modulo_flex and expand_if_one_branch before determining whether it's a TyStar or not.
is_term [Types]
Has this variable kind term?
is_tyapp [Types]
Works with either TyOpen or TyApp.
is_tyopen [Types]
Is this an open variable?
is_type [Types]
Has this variable kind type?
is_user [Types]
Is this name user-provided?
iter [LazyList]
iter [GMap.S]
iter [GSet.S]
iter [PersistentUnionFind]
iter [PersistentRef]
iter [Option]
The name speaks for itself
iter2 [GMap.S]
iter2i [MzList]
Same as List.iteri but with two lists.
iter3 [MzList]
Same as List.iter but with three lists.

J
join [Fact]
The lattice join (i.e., least upper bound).
join_many [Fact]

K
karrow [Kind]
keep_only_duplicable [Permissions]
Only keep the duplicable portions of the environment.
kenv [TypeCore]
keys [MzMap.S]
Get a list of all keys in a map.
keyword_table [OCamlKeywords]

L
last [MzList]
Get the last element of a list.
leq [Fact]
The lattice ordering.
leq [Variance]
Compare two variances and tell if the second one subsumes the first one.
leq [Mode]
The lattice ordering.
lift [DeBruijn]
lift i t lifts type t by i
lift [GMap.S]
locate [TypeCore]
Refresh the location of an environment.
locate [KindCheck]
locate env loc updates env with the location loc.
location [TypeCore]
Get the current location in the environment.
location [KindCheck]
location env is the current location in the source code.
lookup [GMap.S]
lookup_and_remove [GMap.S]

M
make [MzList]
make n f creates [f 1; ...; f n].
make [PersistentRef]
make [InfiniteArray]
make x creates an infinite array, where every slot contains x.
make_datacon_letters [Types]
map [TypeCore]
General map operation.
map [MzList]
A sharing-preserving version of List.map.
map [LazyList]
map [GMap.S]
map [Option]
map f opt maps None to None and Some a to Some (f a)
map2i [MzList]
Same as map2 but pass an extra parameter that represents the index
map_none [Option]
map_none n opt maps None to n and Some m to m.
map_some [MzList]
Composition of List.map and filter_some.
mark [TypeCore]
mark_inconsistent [TypeCore]
Mark the environment as being inconsistent.
mark_reachable [Types]
Mark all type variables reachable from a type, including via the ambient permissions.
max [MzList]
Find the biggest element in a list
may_raise_error [TypeErrors]
This function may raise an exception that will be later on catched in Driver, or emit a warning, or do nothing, depending on whether the error has been tweaked with the warn/error string.
meet [Fact]
The lattice meet.
meet [Mode]
The lattice meet (i.e., greatest lower bound).
mem [GMap.S]
mem [GSet.S]
memoize [Identifier.Make]
merge_envs [Merge]
When the control-flow diverges, one needs to merge the environments, that is, compute a set of permissions that subsumes the two environments.
merge_left [TypeCore]
Merge two variables while keeping the information about the left one.
minus [MzMap.S]
minus m1 m2 returns m1 minus all the elements that are also in m2, that is, m1 \ (m1 ∩ m2)
modify_kenv [TypeCore]
An environment contains a kind-checking environment that contains mapping for all the current module's _dependencies_.
module_name [TypeCore]
Get the current module name.
module_name [KindCheck]
module_name env is the name of the current module.
modulo_flex [TypeCore]
Make sure we're dealing with the real representation of a variable.
msg [Log]
Analogous to error, but does not raise any exception; instead, just produces and returns the error message as a string.

N
names [KindCheck]
names ty returns a list of the names introduced by the type ty, via TyNameIntro forms.
neq [PersistentRef]
next [LazyList]
nil [LazyList]
no_proof [Derivations]
Here is how to not prove a judgement.
nothing [Derivations]
If you're iterating over a series of premises, it is sometimes convenient to say that one of them requires no special operations because of a certain rule...
nth_opt [MzList]
Just like List.nth except it returns an Option type.

O
one [LazyList]
option_of_result [Derivations]
Get the env option part of a result.

P
p [KindCheck]
p [Lexer]
p displays the position that is passed as an argument.
p_kind [Types.TypePrinter]
p_unit [Expressions]
The () (unit) pattern.
par [Derivations]
This is a slightly different combinator, that allows you to try several rules to prove the same judgement.
parameter [Fact]
A fact for a parameter p is a conjunction of implications of the form m p => m, where m ranges over every mode.
parse_warn_error [TypeErrors]
Set up the module to take into account the warn / error / silent settings specified on the command-line.
pconstraint [Types.TypePrinter]
pdefinitions [Expressions.ExprPrinter]
pderivation [DerivationPrinter]
penv [Types.TypePrinter]
pexpr [Expressions.ExprPrinter]
pfact [Types.TypePrinter]
pgroup [KindPrinter]
pmaybe_qualified_datacon [Expressions.ExprPrinter]
pname [Types.TypePrinter]
pnames [Types.TypePrinter]
ppat [Expressions.ExprPrinter]
ppermission_list [Types.TypePrinter]
ppermissions [Types.TypePrinter]
premises [Derivations]
The most intuitive way of writing down the premises for a judgement: you just list all the results that have to be successful for this judgement to be true, and premises takes care of chaining them left-to-right.
print [Fact]
print param head fact is a textual representation of the fact fact.
print [Mode]
Printing.
print [Identifier.Make]
print [Kind]
print and print_kind convert a kind to a textual representation.
print [SurfaceSyntaxPrinter]
print_binder [Expressions.ExprPrinter]
print_binders [Types.TypePrinter]
print_branch [Types.TypePrinter]
print_constraint [Types.TypePrinter]
print_data_field_def [Types.TypePrinter]
print_datacon [Types.TypePrinter]
print_datacon_reference [Expressions.ExprPrinter]
print_definitions [Expressions.ExprPrinter]
print_derivation [DerivationPrinter]
print_ebinder [Expressions.ExprPrinter]
print_error [TypeErrors]
Once an exception is catched, it can be printed with Log.error and %a...
print_error [Lexer]
print_error displays a lexer error.
print_expr [Expressions.ExprPrinter]
print_facts [Types.TypePrinter]
print_field [Types.TypePrinter]
print_field_name [Types.TypePrinter]
print_kind [Kind]
print_kinds_and_facts [KindPrinter]
print_maybe_qualified_datacon [Expressions.ExprPrinter]
print_names [Types.TypePrinter]
print_pat [Expressions.ExprPrinter]
print_patexpr [Expressions.ExprPrinter]
print_patexprs [Expressions.ExprPrinter]
print_permission_list [Types.TypePrinter]
print_permissions [Types.TypePrinter]
print_point [Types.TypePrinter]
print_position [Lexer]
print_position displays the lexer's current position.
print_quantified [Types.TypePrinter]
print_rec_flag [Expressions.ExprPrinter]
print_sig_item [Expressions.ExprPrinter]
print_signature [Driver]
print_signature prints out (in order, and in a fancy manner) the types that have been found in the file.
print_tapp [Expressions.ExprPrinter]
print_type [Types.TypePrinter]
print_var [Types.TypePrinter]
process [Driver]
process doesn't catch exceptions.
psigitem [Expressions.ExprPrinter]
ptag [Utils]
ptype [Types.TypePrinter]
pvar [Types.TypePrinter]

Q
qed [Derivations]
This is the final operator that finishes a derivation.

R
raise_error [TypeErrors]
This function raises an exception that will be later on catched in Driver.
raise_level [Log]
Perform an operation with the debug level raised by an amount.
read [Utils]
reduce [MzList]
Same as fold_left, but start folding on the head of the list instead of giving an initial element.
refresh_mark [TypeCore]
register [Identifier.Make]
remove [GMap.S]
remove [GSet.S]
replace [MzString]
replace s1 s2 s replaces all occurrences of s1 with s2 in s.
repr [PersistentUnionFind]
reset [Bash]
Reset the cursor to the top-left corner of the screen
reset_permissions [TypeCore]
Reset the permissions of a term variable.
resolve_branch [Expressions]
Use this to transform the branch from a type_def into something that's suitable for manipulation as a type.
resolve_datacon [KindCheck]
resolve_datacon env dref looks up the possibly-qualified data constructor dref.datacon_unresolved in the environment env.
resolved_datacons_equal [TypeCore]
Equality function on resolved data constructors.
resugar [Resugar]
This function converts a type expressed in the internal syntax back to the surface syntax.
root_dir [Configure]
run [Driver]
run runs the specified function and prints any error that may pop up.

S
same [TypeCore]
Are these two variables the same? This is a low-level operation and you probably want to use equal instead.
same [PersistentUnionFind]
same_absolute_path [Utils]
set [PersistentRef]
set [InfiniteArray]
set a i x sets the element contained at offset i in the array a to x.
set_definition [TypeCore]
Set a definition.
set_fact [TypeCore]
Set a fact
set_floating_permissions [TypeCore]
Set the list of permissions that are floating in this environment.
set_permissions [TypeCore]
Set the permissions of a term variable.
silent [Log]
Perform an operation with the debug output disabled.
singleton [GMap.S]
singleton [GSet.S]
snd3 [Types]
split [MzString]
split s c will split string s on character c
split3 [MzList]
Same as List.split but for triples instead of pairs.
split_map [MzList]
split_map f xs is equivalent to List.split (List.map f xs).
strict_add [GMap.S]
sub [Permissions]
sub env var t tries to extract t from the available permissions for var and returns, if successful, the resulting environment.
sub_constraint [Permissions]
sub_perm [Permissions]
sub_type [Permissions]
sub_type env t1 t2 tries to perform t1 - t2.
subset [GSet.S]
substring [MzString]
substring s i j will return all characters from string s comprised between indices i (included) and j (excluded).
surface_print_var [Resugar]
This function converts an internal name to a possibly-qualified name in the surface syntax.

T
take [MzList]
If f may convert an 'a into a 'b, then take f l returns the first convertible element in the list, along with the remaining elements in the list.
take_bool [MzList]
thd3 [Types]
theight [Bash]
The terminal's height.
tl [LazyList]
to_list [MzMap.S]
to_list translates the map to a list.
to_list [Option]
token [Lexer]
token is the main entry point of the lexer.
top [Mode]
The greatest element of the lattice.
total [Mode.ModeMap]
touch_branch [TypeCore]
Need to modify the branch hidden beneath a type? Use this helper.
translate_data_type_group [TransSurface]
translate_data_type_group extend env group translates a data type group.
translate_implementation [TransSurface]
translate_implementation translates a compilation unit.
translate_implementation [Mezzo2UntypedMezzo]
translate_implementation [UntypedMezzo2UntypedOCaml]
translate_interface [TransSurface]
translate_interface translates an interface.
translate_interface [Mezzo2UntypedMezzo]
translate_interface [UntypedMezzo2UntypedOCaml]
translate_interface_as_implementation_filter [UntypedMezzo2UntypedOCaml]
translate_module_name [UntypedMezzo2UntypedOCaml]
translate_type_reset [TransSurface]
translate_type_reset translates a type.
try_finally [Utils]
try_proof [Derivations]
This is the most frequent way of trying to prove a judgement.
try_several [Derivations]
This is another way of proving a judgement, namely by trying several instances of the same rule on different items.
tsubst [DeBruijn]
tsubst t1 i t2 substitues t1 for index i in t2
tsubst_branch [DeBruijn]
Same thing with a data type branch.
tsubst_data_type_group [DeBruijn]
Same thing with a data type group.
tsubst_expr [Expressions]
twidth [Bash]
The terminal's width.
ty_app [Types]
ty_app t ts is TyApp (t, ts) if List.length ts > 0, t otherwise.
ty_bar [Types]
ty_bar t1 t2 is TyBar (t1, t2) is t2 is not TyEmpty, t1 otherwise.
ty_bottom [TypeCore]
The bottom type.
ty_equals [Types]
Shortcut for TySingleton (TyOpen _).
ty_open [Types]
A open variable.
ty_tuple [Types]
A tuple.
ty_unit [Types]
Shortcut for the empty tuple TyTuple [].

U
unify [Permissions]
unify env p1 p2 merges two vars, and takes care of dealing with how the permissions should be merged.
union [MzMap.S]
union m1 m2 keeps the values from m1
union [GMap.S]
union [GSet.S]
union [PersistentUnionFind]
union_computed [PersistentUnionFind]
unit_bool [Option]
Since unit option and bool are isomorphic, this function implements the morphism from unit option to bool.
update [PersistentUnionFind]
update_definition [TypeCore]
Update a definition.
update_variance [TypeCore]
Update variance.

V
valid [PersistentUnionFind]
valid [PersistentRef]
variance [Types]
Get the variance of the i-th parameter of a data type.

W
warn [Log]
A warning is a message that always appears, even when debug is disabled.
warn_count [Log]
warn_error_list [Grammar]
with_open_in [Utils]
with_open_out [Utils]

X
xor [MzMap.S]
xor m1 m2 is (m1m2) \ (m1m2)