code: def cascade(sequence, full=False):
      
      if len(sequence) == 1:
          return sequence[0]
      
      left = sequence[0]
      if full:
          intermed = []
      for cdiff in sequence[1:]:
          right = restore(cdiff, left)
          if full:
              intermed.append(right)
          left = right
  
      return left
docs: Restores a sequence of string definitions using the first entry as the
      original and then applying a series of :func:`~acorn.logging.diff.restore`
      calls.
  
      Args:
          sequence (list): of results returned by
            :func:`~acorn.logging.diff.compress`, except that the first entry should
            be a list of string entries for the very first instance.
          full (bool): when True, return all the intermediate entries as well;
            otherwise they are not stored in memory and only the final entry in
            the list is returned.