public UnaOpConst(UnaOpI <P, R> op, A operand) : base(operand, op) { }
public UnaOpCall(A arg, UnaOpI <P, R> op) { this.op = op; this.arg = arg; }
public UnaOpConst(ConstI <P> arg, UnaOpI <P, R> op) : base(arg, op) { }
/// <summary> /// /// </summary> /// <param name="arg">the vals: literal, or var</param> /// <param name="op">the op: parameter type: P, return type:R </param> public UnaOpCallVal(UnaOpI <A, R> op, ExprI <ValI <A> > arg) : base(op, arg) { }
public UnaOpExpr(UnaOpI <P, R> op, A operand) : base(operand, op) { }
public UnaOpExpr(ConstI <P> operand, UnaOpI <P, R> op) : base(operand, op) { }