It doesn't seem possible to consistently make "1 &#60; 2 &#60; 3" a syntax error in a language powerful enough to redefine &#60;. (Including Haskell, where you could easily hide the Prelude definition and define your own, also changing the fixity declaration.)<p>So I guess a fair compromise would be if the default implementation rejects "1 &#60; 2 &#60; 3" at either compile-time or run-time, whichever is possible.