`NodeRef` is just a type-erased version of `NodePtr<T>` right? I think the main question is if we want to allow nodes to be implemented in languages besides C++. If we require nodes to be implemented as `Node` subclasses, then they have to have C++ impls for inheritance to work. If we design a `Node` C API that doesn't have this requirement, then we can mix-and-match Node implementations between languages. That's really only useful for adding temporary node types for e.g. passes implemented in python though.
-- You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub: https://github.com/dmlc/tvm/issues/2983#issuecomment-482296953