def visit_UnaryOp(self, node: ast.UnaryOp) -> Optional[Value]:
    if isinstance(node.op, ast.USub):
        operand = self.visit(node.operand)
        if (isinstance(operand, KnownValue) and isinstance(operand.val, (int, float))):
            return KnownValue((- operand.val))
    return None
def visit_UnaryOp(self, node: ast.UnaryOp) -> Optional[Value]:
    if isinstance(node.op, ast.USub):
        operand = self.visit(node.operand)
        if (isinstance(operand, KnownValue) and isinstance(operand.val, (int, float))):
            return KnownValue((- operand.val))
    return None