入門Haskell

http://d.hatena.ne.jp/a-san/20060511#p1
先日出した正誤表の回答がやっときました。

ところが著者は最後のやつを、次のように修正、とおっしゃってるが・・・、

listToTree = foldl (\t (k, v) -> insertTree (k, v) t) emptyTree

以下のエラーが出る。(^^;

 Hugs> :reload "C:\\user\\lisp\\Haskell\\BinTree.hs"
 ERROR file:C:\user\lisp\Haskell\BinTree.hs:63 - Unresolved to-level overloading
 *** Binding             : listToTree
 *** Outstanding context : Ord b

で、明示的な型定義を追加したところ、問題なく動くようになりました。

listToTree :: Ord k => [(k,v)] -> BinTree (k,v)
listToTree = foldl (\t (k, v) -> insertTree (k, v) t) emptyTree