On Jun 25, 2007, at 8:15 AM, Simon Peyton-Jones wrote:

i2 = 2 :: Int
i3 = 3 :: Int

The code

{-# OPTIONS_GHC -Wall -Werror #-}

module Main where

i2 = 2 :: Int
i3 = 3 :: Int

main :: IO ()
main = putStrLn $ show (i2,i3)

generates the errors

Main.hs:5:0: Warning: Definition but no type signature for `i2'
Main.hs:6:0: Warning: Definition but no type signature for `i3'

and imposes a linear per-use penalty of one extra character per use. If I can't write x^3, I find x*x*x more transparent than x^i3.

I know how to fix this; my previous message considered

i2,i3 :: Int
(i2,i3) = (2,3)

which still imposes a linear per-use penalty of one extra character per use.

It continues to appear to me that "ghc -Wall -Werror" doesn't support small Int constants without a per-use penalty, measured in code length.

Am I the only one blessed/cursed with a vision of how proponents of "practical" languages would have a field day with this? Perhaps I'm reading too many blogs.

_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to