3.2.3 of TAPL can be implemented with finite lists.

Proof by example requested by @webyrd.

Indeed, we only need list comprehension.

However, with CLP(set), we need negation as failure or some form of
negation for _finite_ set comprehension. See p. 899 of Dovier et al.