Как привязать proc-нотацию Haskell к определенным пользователем стрелкам? - PullRequest
5 голосов
/ 27 июля 2011

Чтобы перепривязать нотацию Pro на Haskell, в параграфе 7.3.11 «Повторно привязываемый синтаксис и неявный импорт Prelude» Руководства пользователя GHC говорится, что в обозначении Arrow используются arr, first,. .. функции, которые находятся в области видимости. В нем также говорится, что типы «должны очень близко соответствовать типам Prelude».

Любой, кто хочет использовать это, рекомендуется спрашивать. Итак, насколько близко эти типы должны соответствовать типам Prelude?

1 Ответ

2 голосов
/ 27 июля 2011

Я не знаю какой-либо полной документации по повторному связыванию нотации 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 в контексте.

...