|Did you know ...
setup_call_cleanup(true, Goal, Cleanup). This is
provided for compatibility with a number of other Prolog implementations
only. Do not use call_cleanup/2
if you perform side-effects prior to calling that will be undone by Cleanup.
Instead, use setup_call_cleanup/3
with an appropriate first argument to perform those side-effects.