Why Clean?
Build fast and reliable software with a language backed by more than 40 years of research at Radboud University, Nijmegen.
Uniqueness typing
Write faster code by using destructive updates and interact safely with the outside world while preserving referential transparency.
Generic programming
Define behaviours over the structure of types and derive common operations instead of repeating boilerplate for every type.
Pure and lazy
Write functions without side effects and evaluate a value only when needed. Programs become easier to reason about and test.
Statically typed
Model your domain using algebraic data types, or use dynamics if the type is only known at runtime, while still letting the compiler catch bugs early.
Fast compilation and execution
Compile efficient native applications with a mature, stable and optimizing compiler. Clean is designed for fast compilation and execution.