Thanks, sounds cool. As i'm new to Scala i almost implemented a variant of an IO-Monad but that version seems overkill to me as it requires _many_ more lines of code (like 6 classes/traits + a bunch of inner classes) than the original code and i still feel vague that this will be working and what you wanted (although it will probably remove code duplication, as you suggested). It is very likely there is a much shorter way to implement a mutator monad. However, maybe it is enough to make it look more functional by appending the calls (which is allowed by the Mutator interface), espc. if combined with your later comment on multi-put.