我正在尝试使用非常通用的 UArrays 编写一个函数。我想要类型签名:
myFunction :: a -> b -> ((UArray Int a), (UArray Int b))
但是,a 和 b 太笼统了。我希望它们成为可能的实例之一IArray UArray a
。是否有一些派生类型可以让我指定这个?例如,如果 Num 是一个有效的实例,我可以这样做:
myFunction :: (Num a, Num b) => a -> b -> ((UArray Int a), (UArray Int b))
我想做的事情有意义吗?
提前致谢!