We are currently using SpliteratorIterators backed by our custom iterators. This is a bit wasteful, because it allocates an additional object and in case of MutableTrieMap (and hence Mutable{Entry,Key}Set) we end up wrapping the immutable internal structure with a mutable wrapper for each object.
The second part is important, as it is completely unneeded as spliterators cannot modify state, hence we should be able to just traverse an immutable view of the map.