| ( !* ) [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 (m1 ∪ m2) \ (m1 ∩ m2)
|