I was trying to avoid code duplication. And in this case, I guess what you are saying works because Not only derives from BooleanFunction but And and Or are LatticeOps/BooleanFunction derivatives. So in that case do I call `super(BooleanFunction, cls)` if doing it that way?  (In practice, as per another comment of yours, I just do `BooleanFunction.eval(*args)`.)