SWI-Prolog
free-variation