Search code examples
haskellinfix-operator

Why isn't 〉allowed as a Haskell infix operator?


Why isn't 〉 allowed as an infix operator in Haskell?

GHCi, version 8.0.2: http://www.haskell.org/ghc/  :? for help
Prelude> :{
 infixr 6 〉
 (〉) :: Int -> (Int -> (Int))
 a 〉 b = a + 2*b
:}
print (1 〉 2)

According to this Haskell Report any Unicode symbol or punctuation and this question it should work.


Solution

  • It's probably a bug. It doesn't seem to allow any characters marked as ClosePunctuation or OpenPunctuation by generalCategory. I suggest you open a ticket on the GHC Trac and see what they think.

    https://ghc.haskell.org/trac/ghc/ticket/2687 looks related and suggests that at least at some point OpenPunctuation and ClosePunctuation were considered graphic rather than symbol.