14. A device comprising: at least one processor and a memory; the at least one processor configured to: in response to receiving source code of a program, create a graph modeling a type system of the program, the graph comprising a plurality of nodes representing symbols of code elements and a plurality of links representing relationships between the code elements and expressions bound to a declaration of the code elements; modify the graph in response to detecting a modification of the source code in a source code editor, the modification of the source code changing a data type of at least one code element represented by a node of the plurality of nodes in the graph by invalidating at least one link and creating at least one link; and display information associated with the modification in a response time that is linearly related to a number of declarations in the source code.
18. The device of claim 14 , wherein the at least one processor is further configured to: receive TypeScript program source code.