If f is a "applicative transformation " as described in https://hackage-content.haskell.org/package/base-4.22.0.0/docs/Data-Traversable.html#laws then you have fmap f . sequence = fmap f . traverse id -- by naturality = traverse (fmap f . Id) = traverse (fmap f)