public ElementSource runNonDet(Object input, RBContext context) {
   final Frame leftResult = left.runSemiDet(input, context);
   ElementSource rightResult = right.runNonDet(input, context);
   if (leftResult == null) {
     return rightResult;
   } else {
     //			PoormansProfiler.countSingletonsFromDisjunctionSemiDetNonDet++;
     return ElementSource.singleton(leftResult).append(rightResult);
   }
 }
 public SemiDetCompiled first() {
   return new SemiDetCompiledDisjunction(left, right.first());
 }
 public CompiledDisjunction_SemiDet_NonDet(SemiDetCompiled left, Compiled right) {
   super(left.getMode().add(right.getMode()));
   this.left = left;
   this.right = right;
 }