-
Notifications
You must be signed in to change notification settings - Fork 367
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type question on form.html #882
Comments
Correct me if I'm wrong, but my understanding of this is that lowercase 'msg' is a type variable. It could just as easily be 'a' or 'insertSomeMsgHere' for all intents and purposes. Unless Elm knows what specific type is going to be returned there, it doesn't actually care what that type is. 'Msg' on the other hand is specifically a type that someone has declared in the program. It's the type that gets passed into your update function, and if it doesn't match the message that your Html in your view wants to output, it won't compile. In this specific example, neither viewInput or viewValidation actually output a 'Msg' which allows us to use a type variable. It might seem like viewInput is returning a 'Msg' at first glance, but it's actually asking for the 'Msg' to be passed in as an argument (toMsg) and as such needs to use a 'msg' (type variable) in its type declaration, just in case a 'Msg' is not the intended output. If I were to rewrite the Msg definition as this:
With viewInput defined as it is, only the type annotations for the view and update functions would need to be changed from
to
I hope that helps! |
on the page 'https://guide.elm-lang.org/architecture/forms.html' is the following type annotation:
should this not be with capital 'M'
?
Why is 'msg' as type allowed?
thanks
The text was updated successfully, but these errors were encountered: