docs: def is_entailed_by(self, other):
          """
          Returns True iff the values in this list can be entailed by the other
          list (ie, this list is a prefix of the other)
          """
          other = ListCell.coerce(other)
          if other.size() < self.size():
              # other is bigger, can't be entailed
              return False
          if self.value is None:
              # list is empty
              return True
  
          # see if any values in the shorter list are contradictory or 
          # unequal
          for i, oval in enumerate(other.value):
              if i == len(self.value):
                  break
  
              if hasattr(self.value[i], 'is_entailed_by') and \
                     not self.value[i].is_entailed_by(oval):
                  # compare cells
                  return False 
              elif self.value[i] != oval:
                  return False 
          return True