By modeling incomplete programs as typed expressions with \emph{holes}, Hazel could provide meaningful feedback for incomplete programs. However, it only supports simple case analysis on binary sum types and does not support nested patterns nor pattern holes.
The paper formalizes full-fledges \emph{pattern matching} with typed holes. For a match expression with expression and pattern holes, we can still evaluate it when pattern matching must succeed or wait until the holes are filled when the pattern matching may succeed. The main contribution of the work is allowing for static reasoning about \emph{exhaustiveness} and \emph{redundancy} in an incomplete match expression. We define a constraint language with a 3-way logic by introducing the concept of maybe. By connecting the relationship between constraints and patterns, we reason about the runtime behavior of incomplete match expressions in static semantics. As a result, we can generate a warning when the match expression can’t be exhaustive or some rule must be redundant regardless of how the holes are filled.
Mon 24 AugDisplayed time zone: Eastern Time (US & Canada) change
10:30 - 11:30 | |||
10:30 8mPoster | A GHC-Plugin to Compile Effectful Languages Student Research Competition Kai-Oliver Prott CAU Kiel | ||
10:38 8mPoster | Certified double sided auction mechanisms Student Research Competition Suneel sarswat TIFR | ||
10:47 8mPoster | Certified Optimisation of Stream Operations Using Heterogeneous Staging Student Research Competition James Lowenthal University of Cambridge | ||
10:55 8mPoster | Pattern Matching with Typed Holes Student Research Competition Yongwei Yuan University of Michigan | ||
11:04 8mPoster | Type Hole Inference Student Research Competition Zhiyi Pan University of Michigan | ||
11:12 8mPoster | Semantics for a Simple Differentiable Language Using Distribution Theory Student Research Competition Christopher Lam Cornell University | ||
11:21 8mPoster | Gradual Enforcement of IO Trace Properties Student Research Competition Cezar-Constantin Andrici Alexandru Ioan Cuza University of Iasi |