public static CooperatorAction <TPrevInstruction> New <TPrevInstruction>(this CooperatorAction <TPrevInstruction> cooperator)
 {
     return(cooperator.Clone() as CooperatorAction <TPrevInstruction>);
 }
 public static CooperatorAction New(this CooperatorAction cooperator)
 {
     return(cooperator.Clone() as CooperatorAction);
 }
 public static CooperatorRepeat Repeat <TPrevInstruction>(this CooperatorAction <TPrevInstruction> cooperator, int repeatCount)
 {
     return(new CooperatorRepeat(cooperator, repeatCount));
 }
 public static CooperatorRepeat Repeat <TPrevInstruction>(this CooperatorAction <TPrevInstruction> cooperator, Func <bool> predicate)
 {
     return(new CooperatorRepeat(cooperator, predicate));
 }
 public static CooperatorRepeat Repeat(this CooperatorAction cooperator, int repeatCount)
 {
     return(new CooperatorRepeat(cooperator, repeatCount));
 }
 public static CooperatorRepeat Repeat(this CooperatorAction cooperator, Func <bool> predicate)
 {
     return(new CooperatorRepeat(cooperator, predicate));
 }