Operators in Haskell are functions whereas an imperative language will have ‘operators’ and ‘keywords’ et al. Everything in Haskell is a function (like everything is an object in Smalltalk) and the ‘-’ in the case you show could be a subtract function or a negate function depending on context. The ‘-’ is just syntactic sugar for ‘negate’ in the context you are using it so to make it clear for the parser you will find most people use parens like so (-5) or you could call ‘negate 5'.
It’s a huge benefit to understand the basics of Lambda calculus (particularly how expressions are reduced) to fully grok Haskell (and Lisp), you could do this in a few hours/a day with a bit of effort and practice. Once you understand how things are ‘reduced’ you will have no further problems with these things or at least understand why something went wrong.
It’s worth the effort :)
