>> 3) Search for procedures by argument name. This would not be perfect > > I think you'll be out of luck as I bet most of the times the name of > the parameter is more a hint to its actual type than anything else... Yes, I meant it mostly as a poor man's type signature search :) E.g. search for "filename" to find procedures that deal with files. Obviously a better type search can be done with a big manual effort. I wouldn't extract type names only to do this, but we'll get this search for free if the index has them. >> That sounds quite advanced :) Is there a circular list detector? > > In general it can easily be implemented (while recursing over the > inputs) by using something like: I meant static detection knowing just the types and procedures. But I guess one could implement design-by-contract (runtime assertions) or just annotate types for documentation purposes even if we don't have static checking.