~/talk

typedKanren: Statically Typed Relational Programming with Exhaustive Matching in(…)

links:none on file
slides:none on file

typedKanren is a statically typed embedding of a miniKanren dialect in Haskell that implements disequality constraints, GHC.Generics-derived Logical instances and Template Haskell helpers to remove boilerplate. It adds a prism-based matching API and an exhaustive relational matching combinator (matchE') that verifies at compile time that all constructors are handled. The implementation runs fair search via an explicit stream monad, works functionally both forward and backward, and benchmarks slower than Racket’s faster-miniKanren, roughly on par with klogic and slightly behind OCanren, with performance degrading on larger tree-like examples.

AI-written summary · about

  1. 0:00Introduction to typedKanren
  2. 3:10Core features in Haskell
  3. 8:07Type class and Go monad design
  4. 13:07State, constraints and search
  5. 15:14Relational matching with prisms
  6. 17:41Exhaustive relational matching
  7. 19:09Performance evaluation
  8. 21:14Conclusion and future work
  9. 22:18Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.