This is an API change, but seemed to me to be a misuse of `NotImplementedError`.  From the Python docs:

```
In user defined base classes, abstract methods should raise this exception when they require derived classes to override the method.
```

We don't ever plan to implement this -- it's just a type that won't work, so it should be a `TypeError`.