sinterface PossiblyPureMap extends Map { // these methods may return the map itself or a modified copy Map put_possiblyPure(A key, B value); Map remove_possiblyPure(O key); }