Provides an ordered list of CodeElement instances for each of the embedded
        module procedures in the generic interface.

def targets(self):
        """Provides an ordered list of CodeElement instances for each of the embedded
        module procedures in the generic interface.
        """
        if self._targets is None:
            self._targets = {}
            for key in self.procedures:
                element = self.module.parent.get_executable(key)
                if element is not None:
                    self._targets[key] = element
                else:
                    self._targets[key] = None
                    msg.warn("unable to locate module procedure {}".format(key) +
                             " in interface {}".format(self.name))

        return [self._targets[key] for key in self.procedures]