Designing Walrus: Relational Programming with Rich Types, On-Demand Laziness, and Structured Traces

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Cuéllar, Santiago, Spargo, Naomi, Daugherty, Jonathan, Darais, David
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