Updated to use the new type annotations feature in Elm