Clean
Purely functional language from the Netherlands with uniqueness types for safe in-place mutation without monads.
static
compiled
since 1987
functionallazy
Clean is a lazily-evaluated, purely functional language similar to Haskell, but with uniqueness types instead of monads for handling state and I/O. Uniqueness types allow safe in-place mutation of values when it can be proved only one reference exists. Clean compiles to highly efficient native code and influenced the linear and affine type systems in Rust and other languages.