Jeremy Hylton : weblog : 2003-11-12

Clean

Wednesday, November 12, 2003, 11:19 a.m.

Clean is a pure, lazy functional language. That puts it in the same company as Haskell, but the type system is different. Might be interesting.

Clean's key feature is a polymorphic uniqueness type inferencing system, a special extension of the Milner / Hindley / Mycroft type inferencing/checking system allowing a refined control over the single threaded use of objects; with this uniqueness type system one can influence the time and space behavior of programs; it can be used to incorporate destructive updates of objects within a pure functional framework, it allows destructive transformation of state information, it enables efficient interfacing to the non-functional world (to C but also to I/O systems like X-Windows) offering direct access to file systems and operating systems;