Experimental exchange definition

Exchange. Should reverse function that merely does a sequence of dimaps.
Adding some unit tests can't hurt.