2018
DOI: 10.4204/eptcs.285.1
|View full text |Cite
|
Sign up to set email alerts
|

Typed Embedding of a Relational Language in OCaml

Abstract: We present an implementation of the relational programming language miniKanren as a set of combinators and syntax extensions for OCaml. The key feature of our approach is polymorphic unification, which can be used to unify data structures of arbitrary types. In addition we provide a useful generic programming pattern to systematically develop relational specifications in a typed manner, and address the problem of integration of relational subsystems into functional applications.

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1

Citation Types

0
3
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
2
2
1

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(3 citation statements)
references
References 22 publications
0
3
0
Order By: Relevance
“…The first example arose in the context of our work on strongly typed logical DSL for OCAML [19]. One of the most important construct there was a unification of terms with free logical variables, and dealing with such data structures involves a lot of tedious and error-prone work.…”
Section: Typed Logic Valuesmentioning
confidence: 99%
See 1 more Smart Citation
“…The first example arose in the context of our work on strongly typed logical DSL for OCAML [19]. One of the most important construct there was a unification of terms with free logical variables, and dealing with such data structures involves a lot of tedious and error-prone work.…”
Section: Typed Logic Valuesmentioning
confidence: 99%
“…This idea in the form of a certain design pattern was successfully evaluated [5] and then reified in a library and a syntax extension [4]. Our follow-up experience with the library [19] has (once again) shown some flaws in the implementation. The version we present here is almost a complete re-implementation with these flaws fixed.…”
Section: Introductionmentioning
confidence: 99%
“…This paper is a literate Haskell file, and we invite interested readers to download the Haskell version of the paper to experiment with, and extend, the framework we present. 1 Related Previous Lines of Work The techniques that we develop in this paper are closely related to the techniques used for relational programming, pioneered by Friedman and Byrd in miniKanren [5,8,16,22], a language for relational programming and constraint logic programming, which has been implemented in a wide range of different languages; notably Scheme [7,16], but also, e.g., OCaml [30]. The miniKanren language and many of its implementations have been developed and researched for more than a decade, with new developments and improvements appearing each year, such as new and better heuristics for guiding the exploration of execution paths [34].…”
Section: Introductionmentioning
confidence: 99%