我想打印这样的复杂数字:
instance (Show a) => Show (Complex a) where
show (a :+ b) = show a ++ " ":show b ++ "i"
但deriving(Show)
的模块为Complex
。我可以复制Data.Complex
模块,删除deriving(Show)
部分并添加我自己的实例,或者在打印之前我可以将所有复数映射到自定义类型,该类型只能打印复数而不关心与他们一起数学但是当你在一棵树中隐藏着某个复杂的数字时,这很烦人。有更好的解决方案吗?例如,一个允许您覆盖派生实例的扩展名吗?