'The stack will merge strings, add other things as normal'

def append(self, item):

    if isinstance(item, basestring):
        if self._string_last:
            self[(-1)] += item
        else:
            list.append(self, item)
            self._string_last = True
    else:
        list.append(self, item)
        self._string_last = False
