В соответствии с этой статьей о денотационной семантике для Haskell существует только одна нестрогая функция (non-bottom prreserving) от Int до Int.
:
бывает, что существует только один прототип нестрогой функции типа Integer → Integer:
один x = 1
Его варианты constk x = k для каждого конкретного числа k. Почему это единственные возможности? Помните, что один n может быть не менее определенным, чем один ⊥. Поскольку Integer является плоской областью, оба должны быть равны.
По сути, это говорит о том, что единственными нестрогими функциями сигнатуры этого типа могут быть только постоянные функции. Я не следую этому аргументу. Я также не уверен, что подразумевается под плоской областью, остальная часть статьи приводит к мнению, что это просто означает, что у poset значений есть только один node: bottom.
Что-то подобное происходит для функции, идущей от A- > A, или A- > B? То есть они должны быть постоянными функциями?