Reading this, I wonder if userland code would be easier to understand if we had a method that did allowEmpty with false using no additional parameters. Perhaps something like:

```php
$validator->notEmpty('username', 'A username is required');
```