Hi, I like your package very much, but something that would prevent me from using it is the handling of errors as String
I want my errors to have custom types so I can do type safe things later.
Consider changing errors to a type provided by the user e.g.
type alias Validated err a =
Result (List err) a
type Field
= FieldName
| FieldEmail
| FieldPassword
Ok ValidatedForm
|> validate (String.notEmpty (FieldName, "name is required")) form.name
|> validate (String.isEmail (FieldEmail, "email is invalid")) form.email
|> validateMany
[ String.hasLetter (FieldPassword, "password needs to have letters")
, String.hasNumber (FieldPassword, "password needs to have numbers")
]
form.password