Updates all the element instances that are children of this module
        to have new start and end charindex values based on an operation that
        was performed on the module source code.

        :arg line: the line number of the *start* of the operation.
        :arg column: the column number of the start of the operation.
        :arg charcount: the total character length change from the operation.
        :arg docdelta: the character length of changes made to types/execs
          that are children of the module whose docstrings external to their
          definitions were changed.

def update_elements(self, line, column, charcount, docdelta=0):
        """Updates all the element instances that are children of this module
        to have new start and end charindex values based on an operation that
        was performed on the module source code.

        :arg line: the line number of the *start* of the operation.
        :arg column: the column number of the start of the operation.
        :arg charcount: the total character length change from the operation.
        :arg docdelta: the character length of changes made to types/execs
          that are children of the module whose docstrings external to their
          definitions were changed.
        """
        target = self.charindex(line, column) + charcount

        #We are looking for all the instances whose *start* attribute lies
        #after this target. Then we update them all by that amount.
        #However, we need to be careful because of docdelta. If an elements
        #docstring contains the target, we don't want to update it.
        if line < self.contains_index:
            for t in self.types:
                if self._update_char_check(self.types[t], target, docdelta):
                    self._element_charfix(self.types[t], charcount)

            for m in self.members:
                if self.members[m].start > target:
                    self.members[m].start += charcount
                    self.members[m].end += charcount

            self._contains_index = None
        else:
            for iexec in self.executables:
                if self._update_char_check(self.executables[iexec], target, docdelta):
                    self._element_charfix(self.executables[iexec], charcount)