Designing Walrus: Relational Programming with Rich Types, On-Demand Laziness, and Structured Traces
Fuente:
arXiv
Guardado en:
| Autores principales: | , , , |
|---|---|
| Formato: | Preprint |
| Publicado: |
2025
|
| Materias: | |
| Acceso en línea: | |
| Etiquetas: |
Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
| _version_ | 1866908617972645888 |
|---|---|
| author | Cuéllar, Santiago Spargo, Naomi Daugherty, Jonathan Darais, David |
| author_facet | Cuéllar, Santiago Spargo, Naomi Daugherty, Jonathan Darais, David |
| contents | We present Walrus, a functional relational programming language embedded in Haskell that extends the miniKanren model with type-polymorphic unification, on-demand laziness, and a range of usability features aimed at practical development. These include use of Haskell Generics for boilerplate reduction, structured debugging traces, and ergonomic support for product types. We describe the design and implementation of Walrus through the lens of our experience developing bidirectional compilers, and reflect on key design decisions and recurring usability challenges encountered in practice. |
| format | Preprint |
| id |
arxiv_https___arxiv_org_abs_2510_02579 |
| institution | arXiv |
| publishDate | 2025 |
| record_format | arxiv |
| spellingShingle | Designing Walrus: Relational Programming with Rich Types, On-Demand Laziness, and Structured Traces Cuéllar, Santiago Spargo, Naomi Daugherty, Jonathan Darais, David Programming Languages We present Walrus, a functional relational programming language embedded in Haskell that extends the miniKanren model with type-polymorphic unification, on-demand laziness, and a range of usability features aimed at practical development. These include use of Haskell Generics for boilerplate reduction, structured debugging traces, and ergonomic support for product types. We describe the design and implementation of Walrus through the lens of our experience developing bidirectional compilers, and reflect on key design decisions and recurring usability challenges encountered in practice. |
| title | Designing Walrus: Relational Programming with Rich Types, On-Demand Laziness, and Structured Traces |
| topic | Programming Languages |
| url | https://arxiv.org/abs/2510.02579 |