CLJS is a dynamically typed mostly-functional strict uncurried lisp, Purescript is a very Haskell-inspired languages, Elm is syntactically similar but less welded to Haskell, it's strict, it doesn't implement many features (where clauses, pattern guards) and concepts (e.g. typeclasses, HKT) and strongly focuses on FRP and frontend interactive programming instead.