Error reporting for typos inside QL expressions is craptastic
Summary: In general, our error reporting is weak, but it is awful inside of parameters.
For a good motivating example, Alexx had this bit of QL:
_if(_and(_isEmpty(End Page), __isEmpty(End Panel)), xxx, "" - [[End page]].[[End panel]]"")
Note the extra underscore in front of the second _isEmpty. In principle, this is user error; in practice, it's bloody damned hard for a user to spot that error without a decent error message. This should have displayed an error saying that __isError wasn't found.
This likely isn't going to be easy to fix, but we really need to find a way to address it.