val init = (~1,[((4,4),~1),((4,5),1),((5,4),1),((5,5),~1)]) : state - show(init); * to move; board: . . . . . . . . . . . . . . . . . . . . . . . . . . . O * . . . . . . * O . . . . . . . . . . . . . . . . . . . . . . . . . . . val it = () : unit - val next1 = move((3,5),init); - val next2 = move((3,6),next1); - val next3 = move((5,3),next2); show(next3); val next3 = (1, [((5,3),~1),((3,6),1),((3,5),~1),((4,4),~1),((4,5),1),((5,4),~1), ((5,5),~1)]) : state O to move; board: . . . . . . . . . . . . . . . . . . O . . . . . . . * O * . . . . . . * * . . . . . . . * . . . . . . . . . . . . . . . . . . . val it = () : unit - val next4 = move((4,3),next3); show(next4); val next4 = (~1, [((4,3),1),((5,3),~1),((3,6),1),((3,5),~1),((4,4),1),((4,5),1),((5,4),~1), ((5,5),~1)]) : state * to move; board: . . . . . . . . . . . . . . . . . . O . . . . . . . * O * . . . . . . O * . . . . . . O * . . . . . . . . . . . . . . . . . . . val it = () : unit - val next5 = move((3,3),next4); show(next5); val next5 = (1, [((3,3),~1),((4,3),~1),((5,3),~1),((3,6),1),((3,5),~1),((4,4),~1), ((4,5),1),((5,4),~1),((5,5),~1)]) : state O to move; board: . . . . . . . . . . . . . . . . . . O . . . . . . . * O * . . . . . . * * . . . . . * * * . . . . . . . . . . . . . . . . . . . val it = () : unit - val next6 = move((4,2),next5); show(next6); val next6 = (~1, [((4,2),1),((3,3),~1),((4,3),1),((5,3),~1),((3,6),1),((3,5),~1),((4,4),1), ((4,5),1),((5,4),~1),((5,5),~1)]) : state * to move; board: . . . . . . . . . . . . . . . . . . O . . . . . . . * O * . . . . . . O * . . . . . * O * . . . . . . O . . . . . . . . . . . . val it = () : unit - val next7 = move((2,7),next6); show(next7); val next7 = (1, [((2,7),~1),((4,2),1),((3,3),~1),((4,3),1),((5,3),~1),((3,6),~1), ((3,5),~1),((4,4),1),((4,5),~1),((5,4),~1),((5,5),~1)]) : state O to move; board: . . . . . . . . . * . . . . . . . . * . . . . . . . * * * . . . . . . O * . . . . . * O * . . . . . . O . . . . . . . . . . . . val it = () : unit - val next8 = move((6,4),next7); show(next8); val next8 = (~1, [((6,4),1),((2,7),~1),((4,2),1),((3,3),~1),((4,3),1),((5,3),1),((3,6),~1), ((3,5),~1),((4,4),1),((4,5),~1),((5,4),1),((5,5),~1)]) : state * to move; board: . . . . . . . . . * . . . . . . . . * . . . . . . . * * * . . . . . . O O O . . . . * O O . . . . . . O . . . . . . . . . . . . val it = () : unit - val next9 = move((6,3),next8); show(next9); val next9 = (1, [((6,3),~1),((6,4),1),((2,7),~1),((4,2),1),((3,3),~1),((4,3),~1), ((5,3),~1),((3,6),~1),((3,5),~1),((4,4),1),((4,5),~1),((5,4),~1),...]) : state O to move; board: . . . . . . . . . * . . . . . . . . * . . . . . . . * * * . . . . . . O * O . . . . * * * * . . . . . O . . . . . . . . . . . . val it = () : unit -