Implemented diagonal semantics.  Untested.