Tensor closure
private infixr 1 ⇒
(⇒) : Container -> Container -> Container
(⇒) a b = (m : a =&> b) !> Σ (i : a.request) | b.response (π1 (m.fn i))
curry : a ⊗ b =&> c -> a =&> b ⇒ c
curry (!! xm) =
!! \x => (!! \y => let gg = xm (x && y) in gg.π1 ## (π2 . gg.π2))
## (\z => let qq = (xm (x && z.π1)).π2 z.π2 in qq.π1)