[Haskell-cafe] Byte Histogram
ketil at malde.org
Tue Feb 8 12:00:02 CET 2011
Gábor Lehel <illissius at gmail.com> writes:
> Is there any sensible meaning for bangs on return types? I've been
> trying to think this through but not necessarily succeeding.
Not knowing Clean in any detail, I've always just thought that a type
signature of, say:
something :: !Foo -> Bar
would mean the same as, in Haskell:
something :: Foo -> Bar
something foo = foo `seq` ...
In this case, there's no point to a strict return type, since it would
boil down to "x `seq` x", which is just "x".
But it seems that a lot of these discussions are about considering Foo
and !Foo distinct types, which would mean that you can no longer, say,
add a strict and a lazy integer - at least not with the current Num
instance. I find this line of thought very confusing.
> This does seem a bit excessive. As a start, I don't remember anyone
> asking for control over (un)boxedness, so hopefully we could jettison
> that part of it?
Uh, you mean like in IOUArrays, the UNPACK pragma, or
-funbox-strict-fields? Unboxing is an important optimization, but
perhaps the current feature set suffices.
If I haven't seen further, it is by standing in the footprints of giants
More information about the Haskell-Cafe