This is potentially a bit confusing - if it's not passed a node, Rule is an AST Expression, but if it is, Rule is a compiled code object.