On this page:
mini  Kanren-typed:   Typed mini  Kanren
9.3

miniKanren-typed: Typed miniKanren🔗ℹ

This package provides Typed Racket implementations of microKanren and of the miniKanren languages of both editions of The Reasoned Schemer:

Each implementation follows its original code closely, so that it can be read alongside it, and gives every definition a type, so that the structure of the implementation (terms, substitutions, goals, and the streams that carry answers) is visible in the types. Every internal operator is exported.

The modules export many of the same names, so a program should require only one of them, or use prefix-in.

    1 microKanren

      1.1 Types

      1.2 The Core

      1.3 User-Level Forms

    2 First Edition

      2.1 Implementation Basis

      2.2 Types

      2.3 Running Programs

      2.4 Goals

      2.5 Substitutions and Unification

      2.6 Streams

    3 Second Edition

      3.1 Implementation Basis

      3.2 Types

      3.3 Running Programs

      3.4 Goals and Relations

      3.5 Substitutions and Unification

      3.6 Streams

    4 Comparing the Editions

      4.1 The Language

      4.2 Streams

      4.3 Search

      4.4 Committed Choice