code: def _call(self, op, args):
          
          if op in self._op_raw:
              # the raw ops don't get the model, cause, for example, Z3 stuff can't take it
              obj = self._op_raw[op](*args)
          elif not op.startswith("__"):
              l.debug("backend has no operation %s", op)
              raise BackendUnsupportedError
          else:
              obj = NotImplemented
  
              # first, try the operation with the first guy
              try:
                  obj = getattr(operator, op)(*args)
              except (TypeError, ValueError):
                  pass
  
          if obj is NotImplemented:
              l.debug("received NotImplemented in %s.call() for operation %s", self, op)
              raise BackendUnsupportedError
  
          return obj
docs: _call
  
          :param op:
          :param args:
          :return: