\int_eval:n { - (1+2) } gives a "Missing number, treated as zero" message. So does \int_eval:n { + (1+2) }. But \int_eval:n { 0 - (1+2) } evaluates correctly. If + ( or - ( are the first members of an integer argument, an error results; if they are not the first members, they are accepted by \int_eval:n etc. I don't know that this is a bug as such but it certainly feels to me like an untidiness in the l3int interface. It means that the order in which component parts of an expression are presented to \int_eval:n matters, even though in an arithmetical sense, they evaluate to the same number. I query too whether an expression like \int_eval:n { 3(1+2) } should "evaluate" to 3(1+2), rather than 9, without showing an error. (Alternatively, I find myself wondering what would be entailed to harmonize the integer interface with the fp one (which has no problem with these expressions)? Then one could choose whether to evaluate an expression involving integral numerals in l3fp or l3int without having to change the expression, as one does at present. For instance, if the expression involves an exponent, use l3fp; if not use l3int. This choice becomes more complicated when the expression itself needs to be changed.) Andrew --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus