Это потому, что авторы The Reasoned Schemer хотели, чтобы обозначения отношений miniKanren напоминали обычные предикаты Scheme, которые заканчиваются на ?
(например, null?
, pair?
) по соглашению. Верхний индекс o , если вы достаточно щурились (и слышали эту историю раньше), выглядит как измененный ?
.