Unfailing Haskell: A Static Checker for Pattern Matching

Neil Mitchell, Colin Runciman · 2005

A Haskell program may fail at runtime with a pattern-match error if the program has any incomplete (non-exhaustive) patterns in definitions or case alternatives. This paper describes a static checker that allows non-exhaustive patterns to exist, yet ensures that a pattern-match error does not occur. It describes a constraint language that can be used to reason about pattern matches, along with mechanisms to propagate these constraints between program components. 1

Read the paper · More papers on PaperTik