code: def dependency(self):
          
          from re import match
          if self._kind_module is not None:
              #We have already done this search at some point.
              return self._kind_module.name
  
          if (self.kind is not None and "len=" not in self.kind.lower()
              and not match("\d", self.kind[0])):
              #Find the module that declares this kind as:
              # 1) derived type
              # 2) parameter/member
              #The good news is that in order for the module being unit tested to compile,
              #it must have a 'use' statement for the derived type. We can just search from
              #that module with a tree find. Also, at the end of the day, it will have to
              #be declared as public, in order to be used in other modules.
              found, foundmod = self.module.parent.tree_find(self.kind.lower(),
                                                             self.module,
                                                             "publics")
              self._kind_module = foundmod #At worst this will be None again
              if found is not None:
                  return foundmod.name
docs: Returns the module name from the code parser that this parameter/variable
          needs to compile successfully.