我已经看到了各种形式的问题“给定类型签名XXX
,在 Haskell 中找到实现”。因此很自然地要问这是否可以概括或算法化。一个类似的问题是here。但是,很明显,通常这项任务是不可能的。所以下一个问题是用一些通用性换取实用性。
问题:如果所有类型签名都由刚性类型变量和一些约束组成,那么问题是否可以确定,这些约束是从一个固定的集合中提取的(例如
Monad, Traversable, Foldable
?)
一个典型的问题是,为了方便起见(Monad m) => (m j -> [m d]) -> m [j] -> [m [d]]
,我使用了它[]
而不是。(..Constraints t) => t