Purely functional
Functional programs and libraries targeted to improve parallel computations, eager evaluation, and the use of pure data structures.
Modulable
Combining simple libraries to build more complex ones.
Safety
Preserving referential transparency and type safety.