The Discus language is an experimental dialect of Haskell which investigates static typing and program transformation in the presence of computational effects.

The main language features are:

Haskell-like source language, so Haskell-like programs should work with minor modifications.

Modal region and effect system using ‘box’ and ‘run’ to suspend and force computations.

Higher rank polymorphism with bidirectional type inference.

Simple two space copying garbage collection.

Default call-by-value evaluation.

Typed external core language.

Version 0.5.1 (2017/10/23) includes new support for copying garbage collection and implicit function parameters.