Use subtract. - is the only operator in Haskell, that occurs both in a prefix and binary infix variant:
let a = -3 -- prefix variant
let b = (-3) -- also prefix variant!
let c = 4 - 3 -- binary variant
Therefore, you would have to use (subtract 3) 10. See also section 3.4 in the Haskell 2010 report (emphasis mine):
The special form -e denotes prefix negation, the only prefix operator in Haskell, and is syntax for negate (e). The binary - operator does not necessarily refer to the definition of - in the Prelude; it may be rebound by the module system. However, unary - will always refer to the negate function defined in the Prelude. There is no link between the local meaning of the - operator and unary negation.
Prefix negation has the same precedence as the infix operator - defined in the Prelude (see Table 4.1 ). Because e1-e2 parses as an infix application of the binary operator -, one must write e1(-e2) for the alternative parsing. Similarly, (-) is syntax for (\ x y -> x-y), as with any infix operator, and does not denote (\ x -> -x)— one must use negate for that.
And section 3.5 concludes (again, emphasis mine):
Because - is treated specially in the grammar, (- exp) is not a section, but an application of prefix negation, as described in the preceding section. However, there is a subtract function defined in the Prelude such that (subtract exp) is equivalent to the disallowed section. The expression (+ (- exp)) can serve the same purpose.