The Root Cause of Blame - Contracts for Intersection and Union Types
summary
Extends the untyped lambda calculus with a uniform single reduction rule for monitoring higher-order intersection and union contracts and tags each contract with blame path provenance so runtime checking collects violations instead of halting immediately. Demonstrates this on an overloaded function (int->int and bool->bool) where paired violations at the same use produce negative blame, defines contract satisfaction via blame (libraries avoid positive blame, clients avoid negative), assumes pure wrappers, and flags performance and recursive-contract memory concerns.
AI-written summary · about
