extension ASTNode { func accept<V: ASTVisitor>(visitor: V) -> V.VisitResult { return try! accept(visitor: visitor) } }