Type System Foundations for Super-Charged Semantic Code Search
summary
Extends Hindley-Milner with directional subtype constraints that record where every value is produced and consumed, including through constructors and across function boundaries. Implements a demo tool and query language that visualizes linearized dataflows, lets you filter by constructor position (e.g. third tuple element), and extract places affected by a signature change — an example shows a single API change touching 82 files. Prototype works, imperfect but practical for targeted refactors and LLM-assisted edits.
AI-written summary · about
chapters (17)
- 0:00Type system foundations
- 1:06Speaker background
- 3:13Semantic search need
- 7:32Live demo: data flow search
- 7:52Hindley-Milner limitations
- 10:40Data flow as type system
- 13:30Subtype constraints for flows
- 17:28Visualizing type flows
- 21:45Crossing function boundaries
- 23:33Tracking data flows by type
- 26:32Network config example
- 28:49Why constraints matter
- 30:13Analogy: types in a park
- 32:43Turning flows into search paths
- 34:51Large refactor applications
- 36:39Future research directions
- 37:21Resources and closing
related talks
20mGetting into the Flow: Towards Better Type Error Messages for Constraint-Based ...
27mTowards Type-Directed API Search for Mainstream Languages
57mVariant analysis
18mTowards a Language-parametric DSL for Refactoring (Short Paper)
46mSix steps from zero to IDE
37mBeyond Grep: Semantic Code Search for Safer Change at Scale
01h 00mA Type-Safe Structure Editor Calculus + Strictly Capturing Non-Strict Closures
42mSuggesting Valid Substitutions For Typed Holes
