code: def is_contradictory(self, other):
          
          if other.size() > self.size():
              return other.is_contradictory(self)
          # ensure self is bigger or equal size
          if other.size() == 0:
              # empty lists are fine
              return False
          
          # see if any values in the shorter list are contradictory or 
          # unequal
          for i, oval in enumerate(other.value):
              if hasattr(self.value[i], 'is_contradictory') and \
                      self.value[i].is_contradictory(oval):
                  # allow comparing cells
                  return True
              elif self.value[i] != oval:
                  return True
          return False
docs: Two lists are contradictory if the shorter one is not a prefix of the
          other. (Very strict definition -- could be generalized to subsequence)