Formerly tricycle/elm-parse-dont-validate. Search finds this package by either name.
... in my mind, the difference between validation and parsing
lies almost entirely in how information is preserved.
Lets look at the Parser type and dissect it:
type alias Parser inp err out =
inp -> Result (Cons err) out| Type parameter | Meaning | Example |
|---|---|---|
inp | Input type (what is parsed/validated) | User input typically its a String |
err | Error type | Could be your custom error type `type Error = Empty |
out | Output type | Could be your domain typetype Email = Email String |
Graphically:
inp ────────┬──────── ▶ Ok out
│
▼
Err (Cons err)(Cons is a non-empty list from this library)
Take a look at this examples: