特定の型に対して、1つのインスタンス宣言部だけを上書きして新しい型とする事は可能でしょうか。
やりたい事の具体例を2つ挙げると、
- なんらかの型
T
に対して、instance Ord T
だけを書き換えて順序付けを変更する。
T
の他の機能はそのまま使えるようにしつつ、いちいちsortByとかを使わなくて良いようにするため。
2. instance Show (Tree a)
を書き換えて、木構造を字下げ構文で表現するようにする。
追記
GeneralizedNewtypeDeriving
を利用して妥協するのも良いのですが、まだ少し不便な部分があります。
引き継ぐ前のインスタンスはderivingで引き継げますが、その他は引き継げません。
例えばInt
のOrd
以外を引き継いだとして、その他の四則演算などの関数は全て定義し直しです。
またTree a
を引き継いだ場合、Eq
とかは引き継げますが、Functor
とかは引き継げないです。
この辺を解決するのはやはり無理ですかね?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。