Concurrent Clean : pipe line operator
[id:lethevert:20061201:p1]のpipe line operatorを定義。
(|>) infixl 0 (|>) x f ==: f x class (|>$) infixl 0 a b :: !*a !b -> *a instance |>$ File Char instance |>$ File Int instance |>$ File Real instance |>$ File {#Char}
(|>$)オペレータは、以前は(++>)オペレータとしていたものの拡張で、左辺に出現した型にあわせてデフォルトの動作を定義するもの。
一意性型属性は、classの型変数には付けられないようで、仕方なくメンバ関数の方につけています。
ただ、以前のオペレータに比べて、タイプしにくくなったような気が。