2011-07-27 9 views
5

Haskellのproc-notationを再バインドするには、GHCユーザーズガイドの段落7.3.11 "Rebindable syntax and the implicit Prelude import"に、矢印の表記が範囲内にあるarrfirst、...関数を使用すると記載されています。また、型は "Prelude型に非常に密接に一致しなければならない"と述べている。Haskellのproc-notationをユーザー定義の矢印に再バインドするにはどうすればよいですか?

これを使用したい方は、お尋ねください。だから、これらのタイプはどれくらいPreludeタイプと一致しなければならないのですか?

答えて

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という制約を除いています。

関連する問題