foldMapByOf :: (forall s. Getting (M r s) t a) -> (r -> r -> r) -> r -> (a -> r) -> t -> r
foldMapByOf l f z g = reifyFold f z (foldMapOf l (M #. g))
foldMapByOf l f z g = reifyFold f z (foldMapOf l (M #. g))