そして、圏論の主張は変数は引数無しの関数でも有ると言う事。
以下は関数である。

f x = 2 * x

しかし、部分適用されたカリー化関数は関数でもあり、変数でもある。

f = (2*) (関数でもあり、関数という値を返す変数でもある)

すなわち、x = 1のようなただの変数も、つねに1を返すxと言う引数の無い関数と見なせる。

x = 1 (1と言う値の入った変数であり、常に1を返す引数無しの関数でもある)

Haskellでは表現できないものの、さらに言えば数そのものも圏論では値であり、変数であり、関数である。
単純に書くと以下の通りだが、

1 = 1

ペアノの公理(ペアノ数)を使った方が概念的に分かりやすいかも知れない。

data Nat = Zero | Succ Nat

1 = Succ Zero