Does that mean that `XXXOrDefault` have to be covariant as well :-(

```
public T singleOrDefault(T defaultValue)
```