2012-01-05から1日間の記事一覧

Scrap Your Boilerplate ことはじめ2

昨日のやつのモナド版を作ってみます。 recMapM :: forall a b m. (Data a, Data b, Monad m) => (b -> m b) -> a -> m a recMapM f x = do let recurse = gmapM (recMapM f) x case cast x of Nothing -> recurse Just bx -> do z <- f bx case cast z of N…