A work in progress. For now, check out this literate, streamless MicroKanren implementation in Haskell: MicroKanren.lhs