Use fail instead of raise to signal exceptions
Prefer `$ERROR_INFO` from the English library over `$!`
spec wrong validation_type