Elm is a pure functional programming language that compiles to JavaScript.
Elm is statically typed. But it has type inference, so it is not necessary to manually write the types.
All functions are pure. Meaning that given the same arguments they always return the same result.
All data is immutable. Functions always return a new version of the data instead of mutating the data given.
There is no null in Elm. Instead in Elm we represent the absence of a value by using a type called Maybe.