public static @NotNull <T> InboundSemiGraph<T> cache(@NotNull InboundSemiGraph<T> original) {
    return new CachingSemiGraph<>(original);
  }
public static @NotNull <T> InboundSemiGraph<T> cache(@NotNull InboundSemiGraph<T> original)