Take a look to the Haskell Report:
 
http://www.haskell.org/onlinereport/haskell2010/haskellch9.html#x16-1710009

--
Daniel Díaz