Typed Embedding of a Relational Language in OCaml
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 p...
Main Authors: | , |
---|---|
Format: | Article |
Language: | English |
Published: |
Open Publishing Association
2018-12-01
|
Series: | Electronic Proceedings in Theoretical Computer Science |
Online Access: | http://arxiv.org/pdf/1805.11006v1 |
id |
doaj-464c9cdaf8f74b2b855817f105f9880c |
---|---|
record_format |
Article |
spelling |
doaj-464c9cdaf8f74b2b855817f105f9880c2020-11-25T02:18:59ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802018-12-01285Proc. ML/OCAML 201612210.4204/EPTCS.285.1:2Typed Embedding of a Relational Language in OCamlDmitrii Kosarev0Dmitry Boulytchev1 Saint Petersburg State University Saint Petersburg State University 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.http://arxiv.org/pdf/1805.11006v1 |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Dmitrii Kosarev Dmitry Boulytchev |
spellingShingle |
Dmitrii Kosarev Dmitry Boulytchev Typed Embedding of a Relational Language in OCaml Electronic Proceedings in Theoretical Computer Science |
author_facet |
Dmitrii Kosarev Dmitry Boulytchev |
author_sort |
Dmitrii Kosarev |
title |
Typed Embedding of a Relational Language in OCaml |
title_short |
Typed Embedding of a Relational Language in OCaml |
title_full |
Typed Embedding of a Relational Language in OCaml |
title_fullStr |
Typed Embedding of a Relational Language in OCaml |
title_full_unstemmed |
Typed Embedding of a Relational Language in OCaml |
title_sort |
typed embedding of a relational language in ocaml |
publisher |
Open Publishing Association |
series |
Electronic Proceedings in Theoretical Computer Science |
issn |
2075-2180 |
publishDate |
2018-12-01 |
description |
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. |
url |
http://arxiv.org/pdf/1805.11006v1 |
work_keys_str_mv |
AT dmitriikosarev typedembeddingofarelationallanguageinocaml AT dmitryboulytchev typedembeddingofarelationallanguageinocaml |
_version_ |
1724879383030661120 |