#Hey Hey
#ほへ、Eq a なら Eq [a] Eq (a,a) Eq ([a],[a]) は derived だから定義しなくてもいいんじゃないの?
#お題ならしょうがない
#そのとおりなんです.書けというお題ですので.
#同等性を外から与えられたときに、その同値類の意味で同等を検査せよ、みたいな問題はちと抽象的だけど、書きたいこともあると思う、つまり eql :: Eq b => (a -> b) -> (a, a) -> Bool を書けということはありそう
#それよくやります. (==) `on` f
#短くてもすぐわかる、すばらしい
#似たのに comparing f とか
#2 項関係を lift する話に抽象化がすすむわけですね
#ちと前に戻りますが、interact :: (String -> String) -> IO () の他にも、interactWithArgs :: ([String] -> String -> String) -> IO () とか interactWithEnv :: ([(String, String)] -> String -> String) -> IO () はあっても良さそうな気がします(関数名のよしあしは別にして
#interact と組み合わせれば作れるんだから、標準ライブラリには入ってなくてもよいかな…
#はいそう思います.あとprogNameも加えた全部盛.5年ほど前にjusの勉強会で作りましたねぇ.
#ここはレベルの高いHaskellインターネッツですね