Index of values


(<?) [Constraint]
x <? t is a conjunction constraint.
(=?=) [Constraint]
t1 =?= t2 is an equality constraint
(^) [Constraint]
c1 ^ c2 is a conjunction constraint.

A
abs [MiniAlgebra]
abs env return the type abs.
active_mode [MiniPrettyPrinter]
Set the active mode.
add [Env]
add env k v associates v to k in env.
add_data_constructor [MiniTypingEnvironment]
Add a data constructor into the environment.
add_type_and_kind_variables [MiniTypingEnvironment]
Merge a environment fragment with an environment.
add_type_constructor [MiniTypingEnvironment]
Add a type constructor into the environment.
add_type_variables [MiniTypingEnvironment]
Add a set of type variables into the environment, associating a name to each.
app [CoreAlgebra]
app t ts built the term corresponding to the (...((t t0) t1)... tn).
are_equivalent [MultiEquation]
are_equivalent v1 v2 tests if v1 and v2 are in the same multi-equation.
arg_types [MiniAlgebra]
result_type env t returns the argument types of the type t if t is an arrow type.
arity [MiniTypes]
arity (t1 -> ... -> tn) returns n.
arrow [MiniTypes]
arrow env x1 x2 builds the internal representation of the type x1 -> x2.
arrow [MiniAlgebra]
arrow env t1 t2 return the type t1 -> t2.
as_fun [MiniTypingEnvironment]
as_fun env provides a view of env as function from names to variable.
as_kind_env [MiniTypingEnvironment]
as_kind env provides a view of env as kind environment.
as_symbol [MiniAlgebra]
as_symbol s maps the string s to a symbol if s is a valid symbol name.
associativity [MiniAlgebra]
associativity s returns the associativity of s.
assocp [Misc]
If l is a list of pairs of a key and a datum, and if p is a predicate on keys, then assocp p l returns the datum associated with the first key that satisfies p in l.

B
builtin_env [MiniAlgebra]

C
change [UnionFind]
change p d updates the descriptor of p to d.
change_arterm_vars [CoreAlgebra]
characters [Positions]
characters p1 p2 returns the character interval between p1 and p2 assuming they are located in the same line.
check [MiniKindInferencer]
check pos env typ kind verifies that typ can be given the kind kind.
chop [MultiEquation]
chop p t introduces t into p by registering a variable into p for each node of its tree maintaining its structure using links between these variables.
chopi [MultiEquation]
chopi rank term chops a term.
column [Positions]
column p returns the number of characters from the beginning of the line of the Lexing.position p.
compare [CoreAlgebra.RowLabel]
compare x y is a total ordering.
compare [IntRank]
compare x y is a total ordering.
concat [Env]
concat env env' merges the mapping of env and env' preferring the mapping of env if there is a clash.
conj [Constraint]
conj cs builds a conjunction between a list of constraints.
cpos [Positions]
cpos lexbuf returns the current position of the lexer.
cposition [Constraint]
cposition c returns the position related to c.

D
debug [Processing]
debug [Misc]
A debugging flag.
diff [BasicSetEquations.SetType]
diff returns the difference of two sets.

E
empty [BasicSetEquations.SetType]
empty is the empty set.
empty [BasicSetEquations.Make]
empty denotes the constant empty set.
empty [Env]
empty is the environment with no binding at all.
empty_environment [MiniTypingEnvironment]
The empty environment.
end_of_position [Positions]
environment_as_list [MiniSolver]
environment_as_list env converts env into a list.
environment_as_list [Solver]
environment_as_list env converts env into a list.
equal [BasicSetEquations.SetType]
equal tells whether two sets are equal.
equivalent [UnionFind]
equivalent point1 point2 tells whether point1 and point2 belong to the same equivalence class.
ex [Constraint]
ex qs c returns the constraint exists qs.c.
execute [Processing]
exists [Constraint]
exists f creates a fresh variable x and returns the constraint exists x.(f x).
exists3 [Constraint]
exists3 f is a shortcut for exists (fun x -> exists (fun y -> exists (fun z -> f x y z))).
exists_list [Constraint]
exists_list l f associates a fresh variable with every element in the list l, yielding an association list m, and returns the constraint exists m.(f m).
exists_set [Constraint]
exists_set names f associates a fresh variable with every name in the set names, yielding a map m of names to variables, and returns the constraint exists m.(f m).
explicit_or_implicit [MiniTypes]
explicit_or_implicit p e tests if a definition is annotated or not and normalizes it such that type constraint can be found at the top of the term.
explode [MultiEquation]
explode t converts an arbitrary depth tree into a 1-depth one using variables.
export [CoreAlgebra.RowLabel]
export i provides access to the inverse of the global mapping, that is, associates a unique identifier with every label.
extract_type [MiniTypes]
extract_type examines an expression and looks for a sufficiently explicit type annotation.

F
filter [Env]
filter env pred returns the set of values that verify pred.
find [UnionFind]
find point returns the descriptor associated with point's equivalence class.
fl [Constraint]
fl qs c returns the constraint forall qs.c.
flush [PrettyPrinter]
fold [CoreAlgebra]
fold f term accu folds f over term's parameters, using accu as initial value.
fold2 [CoreAlgebra]
fold2 f term term' accu folds f over term's parameters, using accu as initial value.
fold_left [Env]
fold f init env iterates over the mappings of env conveying an accumulator whose value is init initially.
fold_type_info [MiniTypingEnvironment]
fold_type_info folds over the environment focusing on type's information.
forall_list [Constraint]
forall_list l f associates a fresh variable with every element in the list l, yielding an association list m, and returns the constraint forall m.(f m).
fresh [UnionFind]
fresh desc creates a fresh point and returns it.
fresh [Mark]
fresh() generates a fresh mark, that is, a mark that is guaranteed to be distinct from all existing marks.
fresh_datacon_scheme [MiniTypingEnvironment]
fresh_datacon_scheme env dname vs retrieves the type scheme of dname in env and alpha convert it using vs as a set of names to use preferentially when printing.
fresh_flexible_vars [MiniTypingEnvironment]
fresh_flexible_vars pos env vs returns a list of fresh flexible variables whose visible names are vs and an environment fragment.
fresh_kind [MiniKindInferencer]
fresh_kind returns a fresh kind for a type.
fresh_rigid_vars [MiniTypingEnvironment]
fresh_flexible_vars pos env vs returns a list of fresh rigid variables whose visible names are vs and an environment fragment.
fresh_unnamed_rigid_vars [MiniTypingEnvironment]
fresh_flexible_vars pos env returns a list of fresh rigid variables without visible names and an environment fragment.

G
generate_constraint [MiniInfer]
generate_constraint p generates a closed constraint that describes the typing of p.
get [InfiniteArray]
get a i returns the element contained at offset i in the array a.
get_registered_tasks [Processing]

H
handle [Errors]

I
import [CoreAlgebra.RowLabel]
import s associates a unique label with the identifier s, possibly extending the global mapping if s was never encountered so far.
infer [MiniKindInferencer]
infer env typ infers a kind for typ.
infer_program [MiniInfer]
infer_program p generates a constraint context that describes program p.
infix [MiniAlgebra]
infix s tests if s is infix.
inhabitants [MultiEquation]
inhabitants p returns the type variables of a pool.
init [MultiEquation]
init () returns a fresh pool.
init_builtin_env [MiniAlgebra]
init_builtin_env variable_maker uses variable_maker to built a typing environment that maps type constructor names to their arities and their type variables.
init_env [MiniInfer]
init_env () returns a constraint context that defines the builtins of the source language.
instance [MultiEquation]
instance p v returns a valid instance of v.
inter [BasicSetEquations.SetType]
inter returns the intersection of two sets.
intern [MiniTypes]
intern env ty converts ty into its internal representation.
intern_kind [MiniKindInferencer]
intern_kind env kind internalizes a kind in the user-syntax.
intern_let_env [MiniTypes]
internal_let_env env fqs rqs internalizes the flexible variables fqs and the rigid variables rqs into env.
intern_scheme [MiniTypes]
intern_scheme env x fqs ty returns the internal representation of the type scheme forall fqs.ty and the binding of x to it.
introduce [MultiEquation]
introduce p v registers v into p and updates its rank accordingly.
is_empty [BasicSetEquations.SetType]
is_empty tells whether a set is empty.
is_flexible [MultiEquation]
is_flexible v returns true if v is a flexible variable.
is_regular_datacon_scheme [MiniTypingEnvironment]
is_regular_datacon_scheme env vs ty checks that forall vs.ty is a valid scheme for a data constructor that is to say following the shape: K :: forall a1 ..
is_rigid [MultiEquation]
is_rigid v returns true if v is a constant or rigid variable.
is_structured [MultiEquation]
is_structured v tests if v is related to a term.
is_task_traced [Processing]
iter [CoreAlgebra]
iter f term applies f successively to every parameter of the term term.
iter [Env]
iter f env iterates over the mappings of env.
iter [Misc]
iter is similar to List.iter, but does not require f to return a result of type unit.
iteri [InfiniteArray]
iteri f t computes f i x on every element x at position i in t.

J
join [Positions]
join p1 p2 returns a position that starts where p1 starts and stops where p2 stops.
joinf [Positions]

L
last [Misc]
Returns the last element of a list.
lex_join [Positions]
line [Positions]
column p returns the line number of to the Lexing.position p.
ljoinf [Positions]
lookup [Env]
lookup env k returns the value associated to k or raises Not_found.
lookup_datacon [MiniTypingEnvironment]
lookup_datacon env k gives access to the typing information related to the data constructor k in env.
lookup_type_variable [MiniTypingEnvironment]
Looks for a type constructor given its name.

M
make [InfiniteArray]
make x creates an infinite array, where every slot contains x.
make_indexes [Misc]
Returns a pair of function import and export to assign a unique integer to a given value.
map [CoreAlgebra]
map f term returns a term whose head symbol is that of term and whose parameters are the images of term's parameters through f.
map [Env]
map f env applies a function f on each mapping of env building a list f (k, v).
monoscheme [Constraint]
monoscheme header turns header into a monomorphic type scheme.

N
n_arrows [MiniAlgebra]
arrow env ts returns the type t0 -> ... -> tn.
n_rowcons [CoreAlgebra]
n_rowcons l ts r returns the row type (l0: t0; ...; ln: tn; r).
new_pool [MultiEquation]
new_pool p introduces a new pool with a rank equals to the one of p + 1.
none [IntRank]
none is the special value used to identify the universal quantifiers of a type scheme in an environment frame.
none [Mark]
none is a distinguished mark, created via an initial call to fresh().
number [MultiEquation]
number p returns the rank of a p.

O
outermost [IntRank]
outermost is the rank assigned to variables that are existentially bound at the outermost level.
output_string [PrettyPrinter]

P
parse_constraint_from_string [MiniSyntacticAnalysis]
Parse a constraint given as a string.
parse_program_from_string [MiniSyntacticAnalysis]
Parse a program given as string.
pos_or_undef [Positions]
pos_or_undef po is the identity function except if po = None, in that case, it returns undefined_position.
pre [MiniAlgebra]
pre env t returns the type pre t.
print [BasicSetEquations.SetType]
print s provides a textual representation of the set s.
print [BasicSetEquations.Make]
print t returns a string representation of the disjoint sum t.
print_binding [MiniPrettyPrinter]
print_binding b pretty-prints b according to the active printing mode.
print_constraint [MiniConstraintPrinter]
print_constraint_task [MiniConstraintPrinter]
print_env [MiniSolver]
print_env printer env use the printer of variable in order to display env.
print_expression [MiniPrettyPrinter]
print_expression e pretty-prints e according to the active printing mode.
print_program [MiniPrettyPrinter]
print_binding p pretty-prints p according to the active printing mode.
print_separated_list [Misc]
Prints a list of elements, with one occurrence of the separator between every two consecutive elements.
print_term [Print]
print_type [MiniPrettyPrinter]
print_type paren t pretty-prints t according to the active printing mode.
print_variable [Print]
print context x returns a printable representation of the object x.
printf_constraint [MiniConstraintPrinter]
printf_constraint [ConstraintPrettyPrinter]
Pretty printer for formula.
priority [MiniAlgebra]
priority s returns the priority of s.

R
record_constructor [MiniAlgebra]
record_constructor env return the type constructor {.}.
redundant [UnionFind]
redundant maps all members of an equivalence class, but one, to true.
register [MultiEquation]
register p v adds v into the pool p without modifying the rank of v.
register [Processing]
register_tasks [MiniConstraintPrinter]
remove_init_context [MiniInfer]
remove_init_context returns the context part that concerns the initial environment.
reset [Print]
reset() clears print's memoization table.
result_type [MiniAlgebra]
result_type env t returns the result type of the type t if t is an arrow type.
rowcons [CoreAlgebra]
rowcons l t r returns the row type (l: t; r).

S
same [Mark]
same mark1 mark2 tells whether mark1 and mark2 are the same mark, that is, were created by the same call to fresh.
scheme [Constraint]
scheme rqs names f associates a fresh variable with every name in the set names, yielding a map m of names to variables, and returns the type scheme forall rqs m [f m] m, where the variables in rqs are rigid and the variables in m are flexible.
scheme' [Constraint]
scheme' rqs rnames fnames f associates a fresh variable with every name in the set fnames and rnames, yielding a map m of names to variables, and returns the type scheme forall (rqs @ rm) fm [f m] m, where the variables in rqs and rm are rigid and the variables in fm are flexible.
set [InfiniteArray]
set a i x sets the element contained at offset i in the array a to x.
set_error_channel [Errors]
set_error_channel c defines the channel into which we print the error messages.
singleton [Misc.StringMap]
solve [MiniSolver]
solve tracer c solves c by doing in-place modifications resulting in a environment.
solve [Solver]
solve tracer c solves c by doing in-place modifications resulting in a environment.
star [MiniKindInferencer]
star is the kind of ml values.
start_of_position [Positions]
strict_add [Misc.StringMap]
strict_union [Misc.StringMap]
string_of_characters [Positions]
string_of_characters (c1,c2) returns the standard (Emacs-like) representation of the character interval (c1,c2).
string_of_cpos [Positions]
string_of_cpos p returns a string representation of the lexer's current position.
string_of_lex_pos [Positions]
string_of_lex_pos p returns a string representation for the lexing position p.
string_of_pos [Positions]
string_of_pos p returns the standard (Emacs-like) representation of the position p.
sum [BasicSetEquations.Make]
sum s t adds s to the sum denoted by t.
svariable [BasicSetEquations.Make]
svariable () is equivalent to variable Set.empty.

T
tuple [MiniAlgebra]
tuple env ts returns t0 * ... * tn.
tycon [MiniTypes]
tycon t xs builds the internal representation of the type t xs.
tycon_args [MiniAlgebra]
tycon_name [MiniAlgebra]
typcon_kind [MiniTypingEnvironment]
Accessor to the kind of a type.
typcon_variable [MiniTypingEnvironment]
Accessor the unification variable of a type.
type_of_primitive [MiniAlgebra]
type_of_primitive p returns the type of a source language primitive.

U
undefined_position [Positions]
This value is used when an object does not from a particular input location.
uniform [CoreAlgebra]
uniform t returns the row type that maps any label to t.
unify [Unifier]
unify pos register v1 v2 equates the variables v1 and v2.
unify [BasicSetEquations.Make]
unify t t' solves the equality between two disjoint sums by determining the unification variable if necessary.
union [BasicSetEquations.SetType]
union returns the union of two sets, which may safely be assumed disjoint.
union [UnionFind]
union point1 point2 merges the equivalence classes associated with point1 and point2 (which must be distinct) into a single class whose descriptor is that originally associated with point2.
union [Misc.StringMap]

V
variable [MultiEquation]
variable() returns a new variable.
variable [BasicSetEquations.Make]
variable s returns a fresh unification variable whose denotation cannot intersect s.
variable_list [MultiEquation]
variable_list xs allocates a fresh variable for every element in the list xs, and returns both a list of these variables and an association list that maps elements to variables, viewed as types.
variable_list_from_names [MultiEquation]
variable_list_from_strings f xs allocates a fresh variable for every string in the list xs, and returns both a list of these variables and an association list that maps elements to variables, viewed as types.
variable_name [MultiEquation]
variable_name v returns the name of v if it exists.
variable_set [MultiEquation]
variable_set xs allocates a fresh variable for every element in the set xs, and returns both a list of these variables and a map of elements to variables.
variable_structure [MultiEquation]
variable_structure v returns the structure of v if it exists.
variables_of_typ [MiniTypes]
variables_of_typ ty returns the type variables of ty.