我可以“分解”类型签名吗?

Mik*_*elF 5 haskell hoogle

假设我想要一个type函数[[a]] -> [[b]] -> [[(a, b)]]。我敢肯定我能弄清楚,但是有可能,它不会像一样干净 zipWith zip

在Hoogle中输入这种类型签名可以为我提供一些功能,但这些功能来自leancheckand extrapolate包,我不想在没有充分理由的情况下将其拖到我的项目中。

鉴于您可以通过方程式推理来计算函数组成,我想知道是否与此过程相反:是否有一种方法可以“分解”复杂的类型签名并将其简化为最简单的函数组成?