Recentemente, tive o prazer de escrever um programa Haskell que pudesse detectar se a NegativeLiteralsextensão estava envolvida. Eu vim com o seguinte: data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$1==u(-1) Experimente online! Isso será impresso...