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

时间:2011-07-27 13:52:36

标签: haskell ghc

要重新绑定Haskell的过程,GHC用户指南的7.3.11 "Rebindable syntax and the implicit Prelude import"段指出箭头符号使用范围内的arrfirst,...函数。它还指出类型“必须非常接近地匹配Prelude类型”。

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

1 个答案:

答案 0 :(得分: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)

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