@NotNull
  private static ThreeState and(ThreeState state, Supplier<? extends ThreeState> conjunct) {
    if (state == ThreeState.NO) return ThreeState.NO;
    ThreeState state2 = conjunct.get();
    if (state2 == ThreeState.NO) return ThreeState.NO;
    if (state == ThreeState.UNSURE || state2 == ThreeState.UNSURE) return ThreeState.UNSURE;
    return ThreeState.YES;
  }
@NotNull
  private static ThreeState and(ThreeState state, Supplier<? extends ThreeState> conjunct)