Parse, don’t validate
but `parseNonEmpty` gives the caller access to the information it learned, while `validateNonEmpty` just throws it away. Consider: what is a parser? Really, a parser is just a function that consumes less-structured input and produces more-structured output.