如何将Haskell的proc-notation重新绑定到用户定义的Arrows?

fro*_*h03 5 haskell ghc

要重新绑定哈斯克尔的PRoC-符号,段落7.3.11"Rebindable语法和隐含的前奏进口"的GHC用户指南的规定,箭头符号使用arr,first...功能,这些功能在范围之内.它还指出类型"必须非常接近地匹配Prelude类型".

鼓励任何想要使用此功能的人询问.那么,这些类型与Prelude类型的匹配程度有多接近?

C. *_*ann 2

我不知道任何关于重新绑定proc符号的完整文档——我认为这是他们扔在那里的东西的类别,因为拥有它是有意义的,但还没有任何明确的使用它的激励示例。

我做了一个快速的实证测试,启用相关扩展,为反弹函数提供虚假类型,然后查看类型错误。我看到的内容大致是这样的:

arr   :: (a -> b) -> t a b
(>>>) :: t a b -> t b c -> t a c
first :: t a b -> t (a, c) (b, c)
Run Code Online (Sandbox Code Playgroud)

我认为其余的功能是类似的。粗略地说,这些函数与标准函数的类型完全相同,只是减去了Arrow上下文中的约束。