1. A method of traversing a representation of an application source code, comprising: beginning to traverse, using one or more computer processors, the representation of the application source code; monitoring a history of the traverse; and continuing to traverse the representation of the application source code based on the history of the traverse, wherein continuing to traverse the representation of the application source code includes identifying a plurality of concrete implementations of a method invocation and traversing less than all of the concrete implementations, the concrete implementations being traversed being selected based on the history of the traverse.