GADTs meet their match: pattern-matching warnings that account for GADTs, guards, and laziness

For ML and Haskell, accurate warnings when a function definition has redundant or missing patterns are mission critical. But today's compilers generate bogus warnings when the programmer uses guard...

[1]  Patrick Maxim Rondon,et al.  Liquid types , 2008, PLDI '08.

[2]  Na Xu Static contract checking for Haskell , 2009, POPL '09.

[3]  Simon L. Peyton Jones,et al.  Refinement types for Haskell , 2014, ICFP.

[4]  Luc Maranget,et al.  Compiling lazy pattern matching , 1992, LFP '92.

[5]  Simon L. Peyton Jones,et al.  Complete and decidable type inference for GADTs , 2009, ICFP.

[6]  Colin Runciman,et al.  Not all patterns, but enough: an automatic verifier for partial but sufficient pattern matching , 2008, Haskell '08.

[7]  Luc Maranget,et al.  Optimizing pattern matching , 2001, ICFP '01.

[8]  Simon L. Peyton Jones,et al.  Giving Haskell a promotion , 2012, TLDI '12.

[9]  Sophia Drossopoulou,et al.  Zeno: An Automated Prover for Properties of Recursive Data Structures , 2012, TACAS.

[10]  Luc Maranget Compiling pattern matching to good decision trees , 2008, ML '08.

[11]  Dana N. Xu Extended static checking for haskell , 2006, Haskell '06.

[12]  Edwin Brady,et al.  Idris, a general-purpose dependently typed programming language: Design and implementation , 2013, Journal of Functional Programming.

[13]  Alain Laville Comparison of Priority Rules in Pattern Matching and Term Rewriting , 1991, J. Symb. Comput..

[14]  Gang Chen,et al.  Guarded recursive datatype constructors , 2003, POPL '03.

[15]  Conor McBride,et al.  The view from the left , 2004, Journal of Functional Programming.

[16]  Tim Sheard,et al.  WHAT IS A PROOF , 2005 .

[17]  Joshua Dunfield,et al.  Refined typechecking with Stardust , 2007, PLPV.

[18]  I. V. Ramakrishnan,et al.  Adaptive Pattern Matching , 1992, SIAM J. Comput..

[19]  Peter Sestoft,et al.  MK Pattern Match Compilation and Partial Evaluation , 1996, Dagstuhl Seminar on Partial Evaluation.

[20]  Simon L. Peyton Jones,et al.  Simple unification-based type inference for GADTs , 2006, ICFP '06.

[21]  Edwin Brady,et al.  Programming and reasoning with algebraic effects and dependent types , 2013, ICFP.

[22]  Philip Wadler,et al.  Views: a way for pattern matching to cohabit with data abstraction , 1987, POPL '87.

[23]  Luc Maranget,et al.  Warnings for pattern matching , 2007, Journal of Functional Programming.

[24]  Neelakantan R. Krishnaswami Focusing on pattern matching , 2009, POPL '09.