append([], x, x).
append([a|x], y, [a|z]) :- append(x, y, z).
において、a, x, y, z という識別子にコーディング時点での任意性が無いというのは
あまり同意できない。