練習問題 3.7.3

計算機を使って
arrow1
の型を見い出せ.



arrow1
を型シグネチャなしで宣言したときの計算機の型推論による|arrow1|の型と,
arrow1 two
の型を見くらべる.


? :type arrow1
arrow1 :: ((Cnum a -> Cnum a) - c) -> Cnum a -> c
? :type arrow1 two
arrow1 two :: Cnum a -> Cnum a -> Cnum a
したがって,
c = Cnum a -> Cnum a = Cnum (a -> a)
また
(Cnum a -> Cnum a) -> (Cnum a -> Cnum a) = Cnum (Cnum a)
であるから,


arrow1 :: Cnum (Cnum a) -> Cnum a -> Cnum (a -> a)