On Mon, Oct 20, 2003 at 10:23:00PM -0400, Derek Elkins wrote: > I've wondered for a while why Haskell 98 didn't provide strictness > annotations for functions a la Clean and no implementations provide it > as an extension (actually I don't know about NHC, but I'm pretty sure > neither GHC nor Hugs do). Clean's solution seems easier to read and > write and seems like it would be trivial (though possibly tedious) to > implement.
I can't speak for why they weren't included in Haskell 98, but on occasion I have wanted something like f :: Int -> !Int -> Int f x y = foo which would translate to: f :: Int -> Int -> Int f _ y | seq y False = undefined f x y = foo although I am not sure how useful it would actually be. another thing which might be handy is ' !' completely analogous to $!, with the exact same precedence as normal functional application (think space-bang, just like dollar-bang) foo x !(y + z) will have the effect of evaluating the second argument before passing it to foo. of course this would conflict with array indexing without some lexing magic... John -- --------------------------------------------------------------------------- John Meacham - California Institute of Technology, Alum. - [EMAIL PROTECTED] --------------------------------------------------------------------------- _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe