class Pair {

  @Override
  public boolean equals(Object other) {
    if (this == other) {
      return true;
    }
    if (!(other instanceof Pair)) {
      return false;
    }
    Pair<?, ?> that = (Pair<?, ?>) other;
    return Objects.equals(key, that.getKey())
        && Objects.equals(value, that.getValue());
  }

  public  Pair(Atom<K> key, Atom<V> value);

}