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

foldMapBy :: Foldable t => (r -> r -> r) -> r -> (a -> r) -> t a -> r
foldMapBy f z g = reifyFold f z (foldMap (M #. g))
foldMapBy f z g = reifyFold f z (foldMap (M #. g))