Clean

Clean is a general-purpose, pure and lazy functional programming language. Clean is similar to Haskell and distinguishes itself through increased performance and relatively faster compilation times. It comes with a package manager, nitrile.

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.

A practical ecosystem

Manage project dependencies using Nitrile, search definitions using Cloogle, or build task-oriented applications using iTasks for web and mTasks for IoT.