This page is an attempt to find a minimal criminal for the bugs in GeSHi, the syntax highlighter that powers <haskell> and <hask> on the Haskell wiki.
x == '-' || True
x :: String x = map toUpper "hello"
Subsequent <haskell> blocks seem to independant of the breakages.
False || True
Looks like the (||) operator is causing the problems.
a || b
However, that works. Perhaps it only breaks when using literals?
'a' || 'b'
No, characters work too.
'a' || True
True || 'a'
5 || 'a'
'a' || 5
5 || True
True || 5
Any kind of attempt to mix literals of different types breaks.
'a' || 'b' -- chars work
"a" || "b" -- strings work
I think any number or constructor on either side of the || makes it break.
f 5 || g 6
f 'a' || g 6
Function application with numbers fails too.
Mixing "a", 'a', or a on one side and a function taking the same on the other works:
"a" || isDigit 'a'
However, with a numeric argument, it's wrong:
"a" || isDigit 5
Possible counterexample to 'constructors don't work':
a || A
Specifically, if they have two or more letters, they seem to fail:
a || Ab