!752 static S code = [=[ [ if [X < is < a < Y] and [a < Y < has < a < Z] then [X < has < a < Z] ] [ mark < is < a < guy ] [ a < guy < has < a < gun ] ]=]; p { new Prolog p; p.upperCaseVariables = true; p.showStuff = true; p.addClauses(snlToTree(code)); printStructure(p.solve(snlToTree("mark < has < a < X"))); // prints X = gun! }