optimize [TT]'s mappend and separate Dats from Types