-- | A Fold which views the result of a function application
-- contramap f :: (f b -> f a)
-- return type: (b -> f b) -> (a -> f a)
to :: (a -> b) -> Fold a b
to f g = coerce . g . f
to :: (a -> b) -> Fold a b
to f g = coerce . g . f
to f g = coerce . g . f