Based on http://tech.noredink.com/post/129641182738/building-a-live-validated-signup-form-in-elm
- messages using the more concise and robust union types and case expressions instead of records and if/then/else expressions
- document various functions using type annotations