Здравствуйте, Sinclair, Вы писали:
S>Я надеялся, что одна переменная связывается только с одним значением, так что (x:y, x:z) матчит строки с одинаковой головой и произвольными хвостами.
Нет, имена переменных на сопоставление не влияют. Тут будет редефинишон. Если нужно сматчить какое-то конкретное значение, можно подставить константу ("x":y, "x":z). Потенциально, конечно, такое соглашение в язык можно ввести, но он будет порождать случайные баги от копипасты. Ни в одном языке я подобного не видел.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.