deepseq-magic 1.0.0.2 → 1.0.0.3
raw patch · 2 files changed
+11/−7 lines, 2 files
Files
- Control/DeepSeq/Magic.hs +10/−6
- deepseq-magic.cabal +1/−1
Control/DeepSeq/Magic.hs view
@@ -31,12 +31,16 @@ rnf a = a `seq` rest `seq` () where rest = case unpackClosure# a of (# _, ptrs#, _ #)->- let s# = sizeofArray# ptrs#- go n# | n# ==# s# = ()- | otherwise =- case indexArray# ptrs# n# of- (# a #) -> rnf a `seq` go (n# +# 1#)- in go 0#+ let s = I# (sizeofArray# ptrs#)+ -- Despite the mucking about with unboxed integers,+ -- use normal equality because the API changed+ -- backwards incompatibly in 7.10. The optimizer+ -- can figure out how to get the unboxed version.+ go n@(I# n#) | n == s = ()+ | otherwise =+ case indexArray# ptrs# n# of+ (# a #) -> rnf a `seq` go (n + 1)+ in go 0 infixr 0 $!!
deepseq-magic.cabal view
@@ -1,5 +1,5 @@ name: deepseq-magic-version: 1.0.0.2+version: 1.0.0.3 synopsis: Deep evaluation of data structures without NFData description: Deep evaluation of data structures without NFData license: PublicDomain