Statically typed - Static typing makes it easier to write safe and efficient interfaces between gluon and the host application.
Type inference - Type inference ensures that types rarely have to be written explicitly giving all the benefits of static types with none of the typing.
Simple embedding - Marshalling values to and from gluon requires next to no boilerplate, allowing functions defined in Rust to be directly passed to gluon.
UTF-8 by default - Gluon supports unicode out of the box with utf-8 encoded strings and unicode codepoints as characters.
Separate heaps - Gluon is a garbage-collected language but uses a separate heap for each executing gluon thread. This keeps each heap small, reducing the overhead of the garbage collector.
Thread safe - Gluon is written in Rust, which guarantees thread safety. Gluon keeps the same guarantees, allowing multiple gluon programs to run in parallel .
let factorial n : Int -> Int = if n < 2 then 1 else n * factorial (n - 1) factorial 10