Strictness of addition functions.

Simon Peyton-Jones simonpj@microsoft.com
Fri, 15 Mar 2002 00:38:20 -0800


| data Pair =3D Pair !Int# !Int#
|=20
| f (Pair x y) =3D x +# y
|=20
| I still discovered to my dismay that the type of the first=20
| argument to f is U(LL).
|=20
| What can I do to force the arguments to be strict?

Int# is *always* strict.  You don't need the !'s.  The L is
misleading, I suppose.   But since Int# means *unboxed*=20
32-bit integers, there is simply no way you can pass a thunk.

Simon