Clean (o)

昨日のRHGでCleanの(o)を関数として定義するとどなるかと言う話題
でやってみたんですが。

モジュールトップレベルで定義すると、多重定義エラーになりました。
関数の中のwhere節で定義するとコンパイル通ります。

因みに(o)はStdFuncで以下のように定義されてます。

(o) infixr  9 // ::  u:(.a -> .b) u:(.c -> .a) -> u:(.c -> .b) // Function composition
(o) f g :== \ x -> f (g x)