And why isn't `Definition` a subclass of `Expression`?