did some more work, primarily in PrintVisitor, Visitor, and FunctionDefNode