
Bulat Ziganshin
JM> data Foo = Bar !Int !Char
JM> the bangs arn't being assosiated with the Int and Char types, but rather JM> the Bar data constructor.
foo :: !Int -> !Int
(Is the second ! actually meaningful?) Personally, I think is much nicer than sprinkling seq's around, and generally sufficient. However, there could perhaps be disambiguities? Last time this came up, I think examples resembling these were brought up: foo :: [!a] -> ![a] -> a foo' :: Map !Int String -> Int -> String Anyway, if a reasonable semantics can be formulated, I think strictness type annotations would be a great, useful, and relatively non-intrusive (AFAICT, entirely backwards compatible) addtion to Haskell'. -k -- If I haven't seen further, it is by standing in the footprints of giants