3.2 Spot a category in Haskell をもう一度

この3.2のところで、この論文でどんな圏を扱うことにするか書いてあるわけだが、
いくつか勘違いしていたようで、つっこみを頂きました。(ありがとうございます。)
ということでもう一度整理したいと思います。
Haskell には型と値がある。(参照: http://www.sampou.org/haskell/tutorial-j/goodies.html )
ここで扱う圏をHaskとすると、例えば
f::Int -> Int
f x = x + 1
のような、(XXX -> XXX)という型を持つ値がHaskのarrowになると。
で、objectとしては、Int や (Int -> Int)や(List Int)などの型がなる。
で、(Int -> Int) という"型"がArrowになるのではなくて、
(Int -> Int)という型を持つなんらかの値である具体的な関数がArrowになるっていうあたりを
どうもこんがらがってしまった。なんとなくはわかっていたと思うのだが、考えてるうちにこんがらがって、
「(Int -> Int)って型を持つ値がArrowだよなー」というところから
「(Int -> Int)って型がArrowだよなー」ということになって、
「とりあえずObjectとArrowは重ならないだろうから〜(←これも根拠なし)(Int -> Int)の型はobjectじゃないってことにしておこう」
ってな具合で、(Int -> Int)のような型がobjectにならないっていう間違った結論に至ったという次第。
で、もう一点つっこみをいただいたカリー化の話に関してはまた後日。