/// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the modulus operator (with the argument going to the other side).</param>
 public ModulusAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the subtraction operator (with the argument going to the other side).</param>
 public SubtractionAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the greater-than-or-equal operator (with the argument going to the other side).</param>
 public GreaterThanOrEqualAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the less-than operator (with the argument going to the other side).</param>
 public LessThanAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the addition operator (with the argument going to the other side).</param>
 public AdditionAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the greater-than operator (with the argument going to the other side).</param>
 public GreaterThanAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Default constructor.
 /// </summary>
 /// <param name="side"></param>
 protected ExposeBinaryOperatorAttribute(OpSide side)
 {
     OperatorSide = side;
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the AND operator (with the argument going to the other side).</param>
 public BitwiseAndAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the inequality operator (with the argument going to the other side).</param>
 public InequalityAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the multiplication operator (with the argument going to the other side).</param>
 public MultiplicationAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the division operator (with the argument going to the other side).</param>
 public DivisionAttribute(OpSide side)
     : base(side)
 {
 }
 /// <summary>
 /// Declares a proxy method to the operator, with the current object being on the specified side.
 /// </summary>
 /// <param name="side">The side on which the current instance will be provided to the XOR operator (with the argument going to the other side).</param>
 public ExclusiveOrAttribute(OpSide side)
     : base(side)
 {
 }