Returns true if the specified symbol has it's value changed
        by this executable or *any* of its dependencies.

def changed(self, symbol, checked = None):
        """Returns true if the specified symbol has it's value changed
        by this executable or *any* of its dependencies."""
        #Initialize the dictionary if we are the first executable to call this.
        myname = "{}.{}".format(self.module.name, self.name).lower()
        if checked is None:
            checked = []

        if myname not in checked:
            matches = self._get_assignments_in(self._parameters, symbol)
            if (matches is not None and
                (isinstance(matches, bool) and matches == True) or
                (isinstance(matches, list) and len(matches) > 0)):
                return myname
            else:
                #Make sure we don't check any executable twice.
                checked.append(myname)
                #We need to check the dependencies of this executable and
                #see if any of them modify the parameter.
                for dependlist in self.dependencies:
                    for dependency in self.dependencies[dependlist]:
                        if dependency.operator:
                            continue

                        if symbol in dependency.argnames:
                            pindex = dependency.argnames.index(symbol)
                            iexec = dependency.target
                            if iexec is not None:
                                pname = iexec.ordered_parameters[pindex].name.lower()
                                if iexec.changed(pname, checked) != "":
                                    return iexec.full_name
                            else:
                                checked.append(dependency.external_name)
                        else:
                            checked.append(dependency.external_name)
        else:
            return None