A class to validate arbitrary data using functional rules.
Returns true if the given data is valid and type aliases it as Valid
Attempt to validate the input data.
If it is valid, it is type aliased as Valid
Apply the validation rules to the data object and return any error messages.