ThreeState (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; }