Fixes #284. Calling fail would throw an ArgumentError instead of the appropriate error.