some documentation from sokuza kanren