It's a function that takes a String and returns a new function which takes a String and returns a String. All functions in Haskell/Elm are arity 1.
So in order to construct functions that accept more than one argument, you actually return successive functions that apply successive arguments, known as currying.
So in order to construct functions that accept more than one argument, you actually return successive functions that apply successive arguments, known as currying.