It's a shame `assert` can't take an optional `Throwable` type, like enforce can. It would be cute if we could write:

```D
assert!RangeError(!r.empty);
```

Of course, `assert` itself isn't a template, but if we end up using `version(assert)` a lot maybe it's time we make assert and enforce more consistent with each other.