Perhaps what you seek is a cousin to library(solution_sequences) but instead of working with findall/3 , create a new predicate concurrent_findall/3 (which might be concurrent_and/2 or concurrent_maplist/2 (ref)) and then the cousin library ( library(concurrent_solution_sequences) ) would work with concurrent_findall/3.