Hole Refinements for Polymorphic Type-and-Example Driven Synthesis

Publication date

2026-01-08

Authors

Mulleners, NiekORCID 0000-0002-7934-6834ISNI 0000000524246328
Jeuring, J.T.ISNI 0000000110063265
Swierstra, WouterORCID 0000-0002-0295-7944ISNI 0000000426852359

Editors

Advisors

Supervisors

Document Type

Part of book
Open Access logo

License

cc_by

Abstract

Many synthesizers implicitly benefit from using polymorphic types, since parametric polymorphism reduces the search space. Additional synthesis constraints may interfere with parametricity. In particular, a polymorphic type may cause otherwise feasible input-output examples to contradict each other. We present Taxi (type-and-example based inferencer), a tool for efficiently reasoning about the feasibility of polymorphic programs specified by input-output examples, and Driver, a tactic language for top-down program synthesis that uses feasibility reasoning to prune the search space. Taxi guarantees that every search state corresponds to a correct (albeit possibly partial) implementation. In addition, it allows for shortcutting the synthesis when a subspecification covers all cases. We show that these techniques have the potential to speed up top-down enumerative type-and-example driven synthesizers.

Keywords

container functors, example propagation, feasibility, parametricity, program synthesis, Computer Graphics and Computer-Aided Design, Computer Science Applications

Citation

Mulleners, N, Jeuring, J & Swierstra, W 2026, Hole Refinements for Polymorphic Type-and-Example Driven Synthesis. in Proceedings of the 2026 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation (PEPM ’26). Association for Computing Machinery, pp. 17-30. https://doi.org/10.1145/3779209.3779535