質問編集履歴
1
あ
title
CHANGED
File without changes
|
body
CHANGED
@@ -3,4 +3,11 @@
|
|
3
3
|
やりたい事の具体例を2つ挙げると、
|
4
4
|
1. なんらかの型`T`に対して、`instance Ord T`だけを書き換えて順序付けを変更する。
|
5
5
|
`T`の他の機能はそのまま使えるようにしつつ、いちいちsortByとかを使わなくて良いようにするため。
|
6
|
-
2. `instance Show (Tree a)`を書き換えて、木構造を字下げ構文で表現するようにする。
|
6
|
+
2. `instance Show (Tree a)`を書き換えて、木構造を字下げ構文で表現するようにする。
|
7
|
+
|
8
|
+
# 追記
|
9
|
+
`GeneralizedNewtypeDeriving`を利用して妥協するのも良いのですが、まだ少し不便な部分があります。
|
10
|
+
引き継ぐ前のインスタンスはderivingで引き継げますが、その他は引き継げません。
|
11
|
+
例えば`Int`の`Ord`以外を引き継いだとして、その他の四則演算などの関数は全て定義し直しです。
|
12
|
+
また`Tree a`を引き継いだ場合、`Eq`とかは引き継げますが、`Functor`とかは引き継げないです。
|
13
|
+
この辺を解決するのはやはり無理ですかね?
|