Not all patterns, but enough: an automatic verifier for partial but sufficient pattern matching

  • Authors:
  • Neil Mitchell;Colin Runciman

  • Affiliations:
  • University of York, York, United Kingdom;University of York, York, United Kingdom

  • Venue:
  • Proceedings of the first ACM SIGPLAN symposium on Haskell
  • Year:
  • 2008

Quantified Score

Hi-index 0.00

Visualization

Abstract

We describe an automated analysis of Haskell 98 programs to check statically that, despite the possible use of partial (or non-exhaustive) pattern matching, no pattern-match failure can occur. Our method is an iterative backward analysis using a novel form of pattern-constraint to represent sets of data values. The analysis is defined for a core first-order language to which Haskell 98 programs are reduced. Our analysis tool has been successfully applied to a range of programs, and our techniques seem to scale well. Throughout the paper, methods are represented much as we have implemented them in practice, again in Haskell.