public static new SCode Make(Primitive2 rator, SCode rand0, SCode rand1)
 {
     return
         ((rand0 is LexicalVariable) ? PrimitiveIsObjectEqL.Make(rator, (LexicalVariable)rand0, rand1) :
          (rand0 is Quotation) ? PrimitiveIsObjectEqQ.Make(rator, (Quotation)rand0, rand1) :
          (rand1 is LexicalVariable) ? PrimitiveIsObjectEqSL.Make(rator, rand0, (LexicalVariable)rand1) :
          (rand1 is Quotation) ? PrimitiveIsObjectEqSQ.Make(rator, rand0, (Quotation)rand1) :
          new PrimitiveIsObjectEq(rator, rand0, rand1));
 }
 public static SCode Make(PrimitiveIsObjectEqL predicate, SCode consequent, SCode alternative)
 {
     return
         (predicate is PrimitiveIsObjectEqA) ? PCondIsObjectEqA.Make ((PrimitiveIsObjectEqA) predicate, consequent, alternative) :
         (predicate is PrimitiveIsObjectEqL1) ? PCondIsObjectEqL1.Make ((PrimitiveIsObjectEqL1) predicate, consequent, alternative) :
         //(predicate is PrimitiveIsObjectEqLL) ? Unimplemented():
         (predicate is PrimitiveIsObjectEqLQ) ? PCondIsObjectEqLQ.Make ((PrimitiveIsObjectEqLQ) predicate, consequent, alternative) :
         (consequent is LexicalVariable) ? Unimplemented () :
         (consequent is Quotation) ? Unimplemented():
         (alternative is LexicalVariable) ? Unimplemented () :
         (alternative is Quotation) ? Unimplemented () :
         new PCondIsObjectEqL (predicate, consequent, alternative);
 }
 protected PCondIsObjectEqL(PrimitiveIsObjectEqL predicate, SCode consequent, SCode alternative)
     : base(predicate, consequent, alternative)
 {
     this.rand0Name = predicate.rand0Name;
     this.rand0Depth = predicate.rand0Depth;
     this.rand0Offset = predicate.rand0Offset;
 }