id - единственная функция типа a -> a, и
fst единственная функция типа (a,b) -> a. В этих простых случаях это довольно просто видеть. Но в целом, как бы вы это доказали? Что делать, если есть несколько возможных функций одного и того же типа?
В качестве альтернативы, учитывая тип функции, как вы получаете уникальную (если это правда) функцию этого типа?
Изменить: меня особенно интересует, что происходит, когда мы начинаем добавлять ограничения в типы.