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

📅 2025-10-02
📈 Citations: 0
Influential: 0
📄 PDF
🤖 AI Summary
To address miniKanren’s limitations in polymorphic unification, debugging support, and practical usability, this paper introduces Walrus—a functional relational programming language embedded in Haskell. Methodologically, Walrus integrates relational semantics with Haskell’s type system via (1) a polymorphic unification mechanism built on type families and GHC generics, enabling constraint-aware relational reasoning; (2) an on-demand lazy evaluation strategy that preserves logical completeness while ensuring computational efficiency; and (3) structured AST tracing and composable debugging interfaces, markedly improving observability of relational programs. Designed as a lightweight embedded DSL, Walrus seamlessly unifies functional and relational paradigms. Empirical evaluation in complex domains—such as bidirectional compilers—demonstrates its expressive power, maintainability, and extensibility, significantly reducing development and debugging overhead for relational programs.

Technology Category

Application Category

📝 Abstract
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.
Problem

Research questions and friction points this paper is trying to address.

Extends miniKanren with type-polymorphic unification features
Implements on-demand laziness for functional relational programming
Addresses usability challenges in practical development workflows
Innovation

Methods, ideas, or system contributions that make the work stand out.

Type-polymorphic unification extends miniKanren model
On-demand laziness enables flexible evaluation strategies
Haskell Generics reduce boilerplate for practical development
🔎 Similar Papers
No similar papers found.
S
Santiago Cuéllar
Galois, Inc., USA
N
Naomi Spargo
Galois, Inc., USA
J
Jonathan Daugherty
Galois, Inc., USA
David Darais
David Darais
Galois, Inc.
Programming LanguagesProgram AnalysisMechanized Proofs