<div dir="ltr">>If you can construct a list of solutions directly, that will usually be faster<div>>than using solutions/2, since the latter has nontrivial overhead. Whether<div>>it will be *measurably* faster depends on what fraction of the program's</div><div>>overall runtime this task takes, and on whether your direct method</div><div>>for construction of solutions requires a post-pass to sort the solutions,</div><div>>or to eliminate duplicates (two tasks that solutions/2 does for you,</div><div>>and which form part of its overheads).  </div></div><div><br></div><div>Building on Zoltan Somogyi's suggestion to construct your own list instead of relying on solutions/2, if you want to get an idea of how to do that, you can look on how the solutions library implements its calls by looking through <a href="https://github.com/Mercury-Language/mercury/blob/master/library/solutions.m">solutions.m</a> in the library folder of the Mercury source code (The Mercury Lang github repository is very useful for this).</div></div>