code: def shift(txt, indent = '    ', prepend = ''):
      
      if type(indent) is int:
          indent = indent * ' '
      special_end = txt[-1:] == ['']
      lines = ''.join(txt).splitlines(True)
      for i in range(1,len(lines)):
          if lines[i].strip() or indent.strip():
              lines[i] = indent + lines[i]
      if not lines:
          return prepend
      prepend = prepend[:len(indent)]
      indent = indent[len(prepend):]
      lines[0] = prepend + indent + lines[0]
      ret = [''.join(lines)]
      if special_end:
          ret.append('')
      return ret
docs: Return a list corresponding to the lines of text in the `txt` list
      indented by `indent`. Prepend instead the string given in `prepend` to the
      beginning of the first line. Note that if len(prepend) > len(indent), then
      `prepend` will be truncated (doing better is tricky!). This preserves a 
      special '' entry at the end of `txt` (see `do_para` for the meaning).