Scanning through everything it looks like this was just to protect against `Hostclass`, `Definition`, and `Node` not implementing `evaluate`. It also meant that you could both `instantiate` and `evaluate`, which is what the `PopsBridge::Program` needed to do.