Mezzo is a dialect of ML with effects control and a fine-grained type system.
Mezzo |
This is the entry point of the program.
|
Driver |
This module sets up a lexer and a parser to create an AST.
|
TypeCore |
This module defines the syntax of types, as manipulated by the
type-checker.
|
DeBruijn |
Dealing with binders.
|
Types | |
ExpressionsCore |
This module defines the syntax of expressions.
|
Expressions |
This module defines substitution functions and binding functions on
expressions as well as data type groups.
|
Merge |
This module implements the merge operation.
|
Permissions |
This module provides permission manipulation functions.
|
TypeChecker |
This is the top of the pyramid: the module that actually performs
type-checking.
|
Derivations |
This file provides a representation of typing derivations, built by
Permissions .
|
TypeErrors |
Everything you ever dreamed of for reporting errors.
|
DerivationPrinter |
This module provide a convenient way to print a typing derivation into a
(supposedly) human-readable form.
|
DataTypeFlavor | |
Mode |
The four modes.
|
Fact |
Conjunction of hypotheses.
|
FactInference |
This module analyzes data type declarations to synthesize facts about
data types.
|
Variance |
This module is entirely devoted to computing the variance of type parameters
in data types.
|
Modules |
Find the dependencies of a module.
|
Interfaces |
Treatment of interfaces.
|
Exports |
Handling the names exported by interfaces and implementations.
|
Hoist |
SurfaceSyntax | |
Grammar | |
Lexer |
The lexer for Mezzo.
|
ParserUtils | |
Resugar |
This function converts an internal name to a possibly-qualified name
in the surface syntax.
|
KindCheck |
This module implements a well-kindedness check for the types of the surface
language.
|
TransSurface |
Translating the surface syntax down into the core language syntax.
|
Identifier |
This functor creates a fresh abstract type of names.
|
Mark | |
Hashcons |
A simple Hashconsing facility.
|
GMap | |
GSet |
This is a stripped down version of
GSet that describes both Patricia
and CompressedBitSet .
|
Patricia |
This is an implementation of Patricia trees, following Chris Okasaki's paper at the 1998 ML Workshop in Baltimore.
|
InfiniteArray |
This module implements infinite arrays.
|
PersistentUnionFind |
A persistent version of the classic union-find algorithm.
|
PersistentRef |
This module implements a persistent store: in other words, it
is a purely functional implementation of references, with an
explicit store.
|
Bash |
Provides wrappers for some bash fancy printing, mainly boxes and colors.
|
MzList |
A bunch of useful functions for lists.
|
MzMap |
Various missing functions from the
Map module.
|
MzString |
Various string utilities.
|
MzPprint | |
Option |
No "J" prefix for this module since OCaml's standard library does not have
an
Option module.
|
Log |
This module provides error reporting functions for Mezzo.
|
Debug | |
TestUtils | |
Utils |