I'm new to Haskell and wondering why this restriction? For example (from LYH): infixr 5 :-: data List a = Empty | a :-: (List a) deriving (Show, Read, Eq, Ord) Thanks, - Olumide