#typeclassopediaを再読始めたんだけど
#((->) e)のFunctorのインスタンスは以下でOK?
#instance Functor ((->) e) where
fmap f g = f . g
#*Devel> fmap (*3) (+3) 3 => 18
#OK です。
#サンクス。ここでorphan instanceなわーにんぐが出るんですが、回避策あります?
#orphan instance の警告は無視するのみです。
#なるほど
#これは、instance が class かあるいは data を定義したファイルの中になければ出る警告です。
#後から、instance を追加する場合は、そんなの無理。
#RWH で、open world に生きているぞ、といっているのに矛盾する警告です。
#たしか、この警告を出さなくする GHC オプションが
#w
#あるので、僕はそれを指定します。
##((->) e)をPointedのインスタンスにする場合のpure = constでOK?
#class Functor f => Pointed f where
pure :: a -> f a
instance Pointed ((->) e) where
pure = const
###*Devel> (fmap (+2) . pure) 3 undefined
5
*Devel> (pure . (+2)) 3 undefined
5
#undefinedがe型の値に当たる
#StringからTextへの移行ってなんかすげぇ面倒くさいんだけどこんなもの?