nobsun です。

> Num, Integral, Floating等のクラスと
> Int, Ratio, Float, Double, Complex等のデータタイプを
> 混同してたから混乱したようです。

私の説明にも混乱がすこしはいっていました。

> 「どういう操作が可能か」という観点でまとめられた抽象化、なのかな。

そのとおりだと思います。Haskell のクラスは Java で言うところの
interface と似ています。ただ、Java や C++ は データ型を定義する時に、
そのデータ型がどのクラスに属しているかを宣言しなければならないですが、
Haskell では型クラスとデータ型は独立しています。

自分が定義したデータ型をあとから必要に応じて型クラスと結びつけます。
これが、Haskell の instance 宣言です。

--
Nobuo Yamashita                 mailto:nobsun / sampou.org
  I love programming.           http://www.sampou.org/
  I love pencil puzzles.        http://www.puzzle.jp/


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