я видел несколько раз утверждаем, что один может доказать, что функция с сигнатурой типаПочему существует только одна возможная реализация функции * id *?
α → α
может быть осуществлен только путем возвращения аргумента, потому что мы ничего о типе параметра не знаем.
id :: α → α
id a = a
exmample этого требования можно найти на http://blog.precog.com/?p=431
Но что мешает нам делать, если заявление, как это (псевдо-код)?
id :: α → α
id a = if (a is_a_String) a + "hello"
else a
Есть ли предварительное условие, что мне не хватает?