// Path: src/main/java/io/usethesource/capsule/util/EqualityComparator.java
// @FunctionalInterface
// public interface EqualityComparator<T> extends java.io.Serializable {
// 
//   static <T> EqualityComparator<T> fromComparator(Comparator<T> comparator) {
//     return (a, b) -> comparator.compare(a, b) == 0;
//   }
// 
//   static <T> boolean equals(T a, T b,
//       ToBooleanBiFunction<T, T> comparator) {
//     return (a == b) || (a != null && comparator.applyAsBoolean(a, b));
//   }
// 
//   @Deprecated // substitute with Object::equals
//   EqualityComparator<Object> EQUALS = (a, b) -> Objects.equals(a, b);
// 
//   boolean equals(T o1, T o2);
// 
//   @Deprecated // limit use of Comparator interface (prefer EqualityComparator)
//   default Comparator<T> toComparator() {
//     return ((o1, o2) -> equals(o1, o2) == true ? 0 : -1);
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/capsule/util/iterator/EmptySupplierIterator.java
// public class EmptySupplierIterator<K, V> implements SupplierIterator<K, V> {
// 
//   private static final SupplierIterator EMPTY_ITERATOR = new EmptySupplierIterator();
// 
//   public static <K, V> SupplierIterator<K, V> emptyIterator() {
//     return EMPTY_ITERATOR;
//   }
// 
//   @Override
//   public boolean hasNext() {
//     return false;
//   }
// 
//   @Override
//   public K next() {
//     throw new NoSuchElementException();
//   }
// 
//   @Override
//   public V get() {
//     throw new NoSuchElementException();
//   }
// 
//   @Override
//   public void remove() {
//     throw new UnsupportedOperationException();
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/capsule/util/iterator/SupplierIterator.java
// public interface SupplierIterator<K, V> extends Iterator<K>, Supplier<V> {
// 
// }


import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Set;
import io.usethesource.capsule.util.EqualityComparator;
import io.usethesource.capsule.util.iterator.EmptySupplierIterator;
import io.usethesource.capsule.util.iterator.SupplierIterator;
    return null;
  }

  @Override
  public V getEquivalent(Object key, EqualityComparator<Object> cmp) {
    return null;
  }

  @Override
  public int size() {
    return 0;
  }

  @Override
  public Set<Entry<K, V>> entrySet() {
    return Collections.emptySet();
  }

  @Override
  public Set<K> keySet() {
    return Collections.emptySet();
  }

  @Override
  public Collection<V> values() {
    return Collections.emptySet();
  }

  @Override
  public SupplierIterator<K, V> keyIterator() {
// Path: src/main/java/io/usethesource/capsule/util/EqualityComparator.java
// @FunctionalInterface
// public interface EqualityComparator<T> extends java.io.Serializable {
// 
//   static <T> EqualityComparator<T> fromComparator(Comparator<T> comparator) {
//     return (a, b) -> comparator.compare(a, b) == 0;
//   }
// 
//   static <T> boolean equals(T a, T b,
//       ToBooleanBiFunction<T, T> comparator) {
//     return (a == b) || (a != null && comparator.applyAsBoolean(a, b));
//   }
// 
//   @Deprecated // substitute with Object::equals
//   EqualityComparator<Object> EQUALS = (a, b) -> Objects.equals(a, b);
// 
//   boolean equals(T o1, T o2);
// 
//   @Deprecated // limit use of Comparator interface (prefer EqualityComparator)
//   default Comparator<T> toComparator() {
//     return ((o1, o2) -> equals(o1, o2) == true ? 0 : -1);
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/capsule/util/iterator/EmptySupplierIterator.java
// public class EmptySupplierIterator<K, V> implements SupplierIterator<K, V> {
// 
//   private static final SupplierIterator EMPTY_ITERATOR = new EmptySupplierIterator();
// 
//   public static <K, V> SupplierIterator<K, V> emptyIterator() {
//     return EMPTY_ITERATOR;
//   }
// 
//   @Override
//   public boolean hasNext() {
//     return false;
//   }
// 
//   @Override
//   public K next() {
//     throw new NoSuchElementException();
//   }
// 
//   @Override
//   public V get() {
//     throw new NoSuchElementException();
//   }
// 
//   @Override
//   public void remove() {
//     throw new UnsupportedOperationException();
//   }
// 
// }
// 
// Path: src/main/java/io/usethesource/capsule/util/iterator/SupplierIterator.java
// public interface SupplierIterator<K, V> extends Iterator<K>, Supplier<V> {
// 
// }


// Path: src/main/java/io/usethesource/capsule/util/collection/AbstractSpecialisedImmutableMap.java
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Objects;
import java.util.Set;
import io.usethesource.capsule.util.EqualityComparator;
import io.usethesource.capsule.util.iterator.EmptySupplierIterator;
import io.usethesource.capsule.util.iterator.SupplierIterator;

    return null;
  }

  @Override
  public V getEquivalent(Object key, EqualityComparator<Object> cmp) {
    return null;
  }

  @Override
  public int size() {
    return 0;
  }

  @Override
  public Set<Entry<K, V>> entrySet() {
    return Collections.emptySet();
  }

  @Override
  public Set<K> keySet() {
    return Collections.emptySet();
  }

  @Override
  public Collection<V> values() {
    return Collections.emptySet();
  }

  @Override
  public SupplierIterator<K, V> keyIterator() {
    return EmptySupplierIterator.emptyIterator();