🤖 AI Summary
Existing effect systems require extensive manual effect annotations and struggle to integrate with legacy codebases. Method: This paper proposes a static effect-handling mechanism based on modal types, introducing modal logic into effect type systems for the first time. It statically guarantees—without source-code modification—that all effectful operations are handled, eliminating the need for explicit effect polymorphism, second-class functions, or fragile syntactic analysis. Contribution/Results: The approach formalizes effect completeness via modal type constraints and semantic modeling of effect handlers. It enables zero-annotation migration and seamless integration with large-scale (million-line) legacy codebases. Experimental evaluation demonstrates strong safety guarantees alongside high compatibility.
📝 Abstract
Effect handlers are a powerful abstraction for defining, customising, and composing computational effects. Statically ensuring that all effect operations are handled requires some form of effect system, but using a traditional effect system would require adding extensive effect annotations to the millions of lines of existing code in these languages. Recent proposals seek to address this problem by removing the need for explicit effect polymorphism. However, they typically rely on fragile syntactic mechanisms or on introducing a separate notion of second-class function. We introduce a novel approach based on modal effect types.