| (<?) [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.
|