Bruno Oliveira writes: >> class Foo o where >> (:+) :: o -> o -> o The Haskell report specifies in section "2.4 Identifiers and Operators": An operator symbol starting with a colon is a constructor. Think of ':' as a character that is interpreted as "uppercase"; you can't use it to start a function or variable name. Peter