public override OperatorMethod Lift(CSharpOperators operators)
 {
     return(new LiftedBinaryOperatorMethod(operators, this));
 }
 public LiftedUnaryOperatorMethod(CSharpOperators operators, UnaryOperatorMethod baseMethod) : base(operators.compilation)
 {
     this.baseMethod = baseMethod;
     this.ReturnType = NullableType.Create(baseMethod.Compilation, baseMethod.ReturnType);
     this.Parameters.Add(operators.MakeNullableParameter(baseMethod.Parameters[0]));
 }
 public LambdaBinaryOperatorMethod(CSharpOperators operators, Func <T1, T2, T1> func)
     : this(operators, func, func)
 {
 }
 public virtual OperatorMethod Lift(CSharpOperators operators)
 {
     return(null);
 }