- Exhaustive typing, so a type checked program will never crash
- Structural (not nominal typing), so there is never any need to write a type declaration
- Effect types, built using row types. Row types are also used for Records and Unions
- No syntax, there is no parser the public interface to the language is a JSON format of the Abstract Syntax Tree (AST), which makes the structural editor necessary.