I am compiling on Windows using GHC. Here is my code for reference http://hpaste.org/86539
The problem is that the following expression does not parse:
3+2 < 1+-4 <= -3 << 1. It should parse as:

.. however, I get unexpected - when it is clearly the highest operator. I suspect it's because of my usage of try on line 55, however without it < and << and operators that are repetitions of one symbol do not parse correctly.
I am seeking advice or hints.