假设我想要一个 type 的函数[[a]] -> [[b]] -> [[(a, b)]]
。我确信我可以弄清楚一些事情,但很可能,它不会像,例如, zipWith zip
它也有那种类型那么干净。
将这种类型签名输入到 Hoogle 中会给我一些功能来填补这个角色,但它们来自leancheck
andextrapolate
包,我不想在没有充分理由的情况下将它们拖到我的项目中。
鉴于您可以通过等式推理计算函数组合,我想知道这个过程是否存在逆向:有没有一种方法可以“分解”复杂类型签名并将其简化为最简单的函数组合?