In the Haskell 98 report, I found this:
The syntax for Haskell type expressions is given above. Just as data values are built using data constructors,
Just to be completely clear: Haskell 98 and Haskell 2000 both allow infix value constructors such as
data Complex r = r :+ r
Here the value constructor (:+) is infix, as in 5 :+ 7.
You only need the TypeOperators extension to have type constructors which are infix. For example,
data x ??! y = Left x | Right y
Here the type constructor (??!) is infix, as in Int ??! Bool.