If I have this Foo.hs:
---
module Foo (foo) where
import Word (Word8)
import Control.Monad.ST (ST)
import Data.Array.ST (STUArray, writeArray)
foo :: STUArray s Int Word8 - [Word8] - Int - ST s ()
foo arr ps i = writeArray arr i w
where i' = 4 * i
|let {
| n :: GHC.Prim.Int#
| Str: DmdType
| n = GHC.Prim.*# 4 ww3
|} in
| case GHC.Prim.# n 0 of wild1 {
|
| Is this really a lazy let, or is there some magic going on
| that means it is
On Wed, Mar 10, 2004 at 09:41:46AM -, Simon Marlow wrote:
Yes, this let will be done strictly.
Thanks (and to the other Simon too)
Like how ISTR Int#s always
appear to have strictness L (these inconsitencies make things
much more difficult as a user IMO, incidentally).
ISTR?
I
Hi,
If I have this Foo.hs:
---
module Foo (foo) where
import Word (Word8)
import Control.Monad.ST (ST)
import Data.Array.ST (STUArray, writeArray)
foo :: STUArray s Int Word8 - [Word8] - Int - ST s ()
foo arr ps i = writeArray arr i w
where i' = 4 * i
w =