The show() method in the map diff is broken. It always looks in the right map, but it is called once for elements only in the right map and once for elements only in the left map.
A quick fix is:
def show( keys: List[K] ) = keys.map( k => DiffShow.show( k ) -> DiffShow.show( left.getOrElse( k, right( k ) ) ) )
The show() method in the map diff is broken. It always looks in the right map, but it is called once for elements only in the right map and once for elements only in the left map.
A quick fix is: def show( keys: List[K] ) = keys.map( k => DiffShow.show( k ) -> DiffShow.show( left.getOrElse( k, right( k ) ) ) )