code: def _op_shape(self, other):
          
          if isinstance(other, farray):
              if self.shape == other.shape:
                  return self.shape
              elif self.size == other.size:
                  return None
              else:
                  raise ValueError("expected operand sizes to match")
          else:
              raise TypeError("expected farray input")
docs: Return shape that will be used by farray constructor.