非常に一般的なUArrayを使用して関数を作成しようとしています。型署名が欲しいのですが:
myFunction :: a -> b -> ((UArray Int a), (UArray Int b))
ただし、aとbは一般的すぎます。それらをの可能なインスタンスの1つにしたいと思いますIArray UArray a
。これを指定できる派生タイプはありますか?たとえば、Numが有効なインスタンスである場合、次のことができます。
myFunction :: (Num a, Num b) => a -> b -> ((UArray Int a), (UArray Int b))
私がやろうとしていることは理にかなっていますか?
前もって感謝します!