DMRG methods take in a keyword argument finalize, while GradientGrassmann take in finalize!, meant to act as a callback function at the end of each solver iteration. DMRG is flexible with the type of the argument, whereas GradientGrassmann casts it into a Function.
This was encountered when trying to use a struct as a function so that it carries local state while performing the required finalizations.