Fact Extraction is a common pass in program analysis: Here, the analyser processes an input program (often in a convenient IR) to identify information about the program that is useful for the analysis, and discard uninteresting information. For example, in Type Inference, the fact extraction pass will typically extract equations between two partially specified types with Type Variables.