Canonical miniKanren implementation