Fay
A proper subset of Haskell that compiles to JavaScript
...It supports pure functional programming, a Fay-specific monad, FFI, optional tail-call optimization, and integration with Cabal packages. GHC-compatible type checking, ensuring correctness. Lazy, pure functional semantics with a distinct Fay monad. Foreign Function Interface (FFI) to integrate native JS code. Compatible with standard Haskell packaging tools like Cabal.