A collection of atomic checks that can be applied to values.
Each of the check functions returns an error if the value doesn't pass the
check or nil if the check is passed.
The checks are typically very simple to the point where you might question
why not perform the check directly. The reason is that as functions they can
be composed and combined and then passed to other code to be called later.
They are used extensively for checking command line parameters.