Die arithmetischen Operatoren sind Methoden:
(1 :: Integer) + (2 :: Integer) = (3 :: Integer) (1.0 :: Double) + (2.3 :: Double) = (3.3 :: Double)Das klappt also nicht:
let { x :: Int ; x = 1 } in x + 2.3Wieso klappt dann das:
1 + (2.3 :: Double) = (3.3 :: Double)es gibt keine automatische Promotion für numerische Argumente, aber die nunmerischen Literale werden promoviert: tatsächlich steht da:
fromInteger 1 + (2.3 :: Double) = (3.3 :: Double)