@sig(H[(Monad, "m"), (Traversable, "t")]/
        t("t", "a") >> (H/ "a" >> t("m", "b")) >> t("m", t("t", "b")))
def forM(t, f):
    return mapM(f, t)
forM :: (Traversable t, Monad m) => t a -> (a -> m b) -> m (t b)
dataset/ETHPy150Open billpmurphy/hask/hask/Data/Traversable.py/forM