public static PositionBound at(final Position position) {
        return new PositionBound(position);
    }
@Test
    public void shouldNotHash() {
        final PositionBound bound = PositionBound.at(Position.emptyPosition());
        assertThrows(UnsupportedOperationException.class, bound::hashCode);

        // going overboard...
        final HashSet<PositionBound> set = new HashSet<>();
        assertThrows(UnsupportedOperationException.class, () -> set.add(bound));

        final HashMap<PositionBound, Integer> map = new HashMap<>();
        assertThrows(UnsupportedOperationException.class, () -> map.put(bound, 5));
    }