>>802
遅延評価!foldでは無理だと思っていました。なるほど、不思議

再度挑戦して
dofirst2 pred f x = find pred x >>= return .f
を経て
dofirst3 pred f = liftM f . find pred
→liftMとfmapって似てるなと思っているところです