As it was used more and more to construct all kinds of applications it was eventually turned into a general purpose functional programming language, first released in May 1995. The new language is strongly typed (Milner/Mycroft type system), provides modules and functional I/O (including a WIMP interface), and supports parallel processing and distributed processing on loosely coupled parallel architectures. Parallel execution was originally based on the PABCabstract machine.
It is one of the fastest implementations of functional languages available, partly aided by programmer annotations to influence evaluation order.
Although the two variants of Clean are rather different, the name Clean can be used to denote either of them. To distinguish, the old version can be referred to as Clean 0.8, and the new as Clean 1.0 or Concurrent Clean.