A defNode is an abstract class intended for procNode (procedure definition) and declNode (declaration) to subclass; it's basically a wrapper for these two types to allow them both to be in a def_list.