gmapM is:exact

A generic monadic transformation that maps over the immediate subterms The default definition instantiates the type constructor c in the type of gfoldl to the monad datatype constructor, defining injection and projection using return and >>=.
gmapM == descendM
Generic monadic map over the immediate subterms