タイプ、タイプクラス、インスタンス
- タイプを作る
- Maybeは「なし」と、ただのa
- タイプはタイプクラスが定義する条件をすべて満たせばタイプクラスのインスタントなる
- 新しいタイプを作ったら、タイプクラスにderivingすると、「継承」のようなことができるし
- 新しいタイプに、タイプクラスが要求する条件を満足するような定義をして、instance指定すると、タイプクラスのインスタンスとしての扱いができるようになる
- 関数のタイプの受け渡し確認
:t sum
- Type、Typeclassの情報確認
:i Eq :i Int
- 関数でないもの(型構築子とか、Type、Typeclassとか)のTypeの取り方を確認
:k Maybe :k Eq :l Int