> ところで 0::Int の ::Int ってどういう意味ですか?

0 と書くと、Num になりますが、
0 :: Int と書くと 0 は Int だと specialize することになります。

--nobsun

--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/