The ddc-core package

Disciple Core is an explicitly typed language based on System-F2, intended
as an intermediate representation for a compiler. In addition to the polymorphism of
System-F2 it supports region, effect and closure typing. Evaluation order is
left-to-right call-by-value by default. There is a capability system to track whether
objects are mutable or constant, and to ensure that computations that perform visible
side effects are not reordered inappropriately.
See the ddc-tools package for a user-facing interpreter and compiler.