http://www.haskell.org/~simonmar/haskell-2010-draft-report-2/haskellch10.html#x17-17300010
"Fixity resolution also applies to Haskell patterns, but patterns are a subset of expressions so in what follows we consider only expressions for simplicity." The string "1 * - 1" is legal as pattern, but rejected as expression! Furthermore fixity resolution does not distinguish between constructors and other operators as it should according to the grammar: pat → lpat qconop pat (infix constructor) | lpat funlhs → var apat { apat } | pat varop pat | ( funlhs ) apat { apat } "a : b * c : d = undefined" is currently rejected with: "cannot mix `:' [infixr 5] and `Main.*' [infixl 9] in the same infix expression" but should be fine by the given grammar (rule "pat varop pat"). Cheers Christian P.S. like in my proposal for infixexp I would change pat to: pat → pat qconop pat (infix constructor) | lpat for the sake of a better presentation only. _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime