stoeffel / elm-verify-examples

BSD 3-Clause "New" or "Revised" License
167 stars 14 forks source link

Top level declarations without annotations get ignored #56

Open rtfeldman opened 6 years ago

rtfeldman commented 6 years ago

I ran into this recently. I'd have expected this to work fine:

import Validate exposing (ifBlank, ifInvalidEmail, ifNotInt)

modelValidator =
    Validate.all
        [ Validate.firstError
            [ ifBlank .email "Please enter an email address."
            , ifInvalidEmail .email "This is not a valid email address."
            ]
        , ifNotInt .age "Age must be a whole number."
        ]

validate modelValidator { email = " ", age = "5" }
    --> [ "Please enter an email address." ]

validate modelValidator { email = "foo@bar", age = "5" }
    --> [ "This is not a valid email address." ]

validate modelValidator { email = "foo@bar.com", age = "5" }
    --> []

However, this doesn't compile (says modelValidator is undefined) unless I add this annotation:

modelValidator : Validator String  { email : String, age : String }

It's

stoeffel commented 6 years ago

good catch.