我需要一个类型为2.3.1
的函数。
但无论我使用Pipe a b m r -> Pipe (a, c) (b, c) m r
,for
或~>
玩多少,我无法正确匹配这些类型。
你能帮助我吗?
答案 0 :(得分:4)
我认为这不可能。假设我们设法写了它:
hypotheticalLift :: Pipe a b m r -> Pipe (a, c) (b, c) m r
hypotheticalLift (yield b)
应该有什么行为?据推测,对于某些yield (b, c)
,它应该与c
相同 - 但是c
,为什么?