public override Object visitBinarySentence(BinarySentence bs, Object arg) { if (bs.isBiconditional()) { return transformBiConditionalSentence(bs); } else if (bs.isImplication()) { return transformImpliedSentence(bs); } else if (bs.isOrSentence() && (bs.firstTermIsAndSentence() || bs.secondTermIsAndSentence())) { return distributeOrOverAnd(bs); } else { return base.visitBinarySentence(bs, arg); } }