code: def visit_Compare(self, node):
      node = self.generic_visit(node)
  
      # Restrict to the binary case.
      assert len(node.ops) == len(node.comparitors)
      if len(node.ops) > 1:
          raise NotImplementedError(
              "Please decompose stacked comparisons into conjunctions of "
              "binary comparisons, e.g. 'x < y < z' as '(x < y) & (y < z)'"
          )
      node_op = node.ops[0]
      node_right = node.comparitors[0]
  
      var = self.infix.get(type(node_op))
      if var is not None:
          node = ast.Call(
              func=ast.Name(id=var, ctx=ast.Load()),
              args=[node.left, node_right],
              keywords=[],
          )
      return node
  
file_path: funsor/funsor/syntax.py
imports: import ast
  import functools
  import inspect
  from .None import ops
label_desc: Use image node_id 5 for calling the OpTransformer obj's underlying member method code with example usage: obj.visit_Compare(node) and returns: node