- Flowtype & Typescript
- Elm, ClojureScript, PureScript
- when composing curried functions it's easy to make a mistake
- components as functions of state
- preferably immutable
- declarative
- emphasis on first-class and higher-order functions
- Sound type system.
- Strong type inference.
- Expressive type features, like variants, modules & objects.
- dead code elimination,
- compile-time optimizations,
- readable & tiny JS output,
- preservation of code structure,
- fast iteration loop,
refmt
Ocaml + Javascript