- unique_solution(:Goal, -Solution) is semidet
- True if Goal produces exactly one solution for Var. Multiple
solutions are compared using =@=/2. This is semantically the
same as the code below, but fails early if a second nonequal
solution for Var is found.
findall(Var, Goal, Solutions), sort(Solutions, [Solution]).