[Haskell-cafe] ByteString, zipWith', and rewrite rules
lemming at henning-thielemann.de
Tue Jul 13 07:39:46 EDT 2010
Thomas M. DuBuisson wrote:
> Comments on the zipWith' function inside of Data.ByteString say:
> -- Rewrite rules
> -- are used to automatically covert zipWith into zipWith' when a pack is
> -- performed on the result of zipWith.
> This is only true internally to Data.ByteString because the zipWith'
> function could be inlined away by GHC once that module is compiled,
> right? If I want "pack (zipWith xor bs1 bs2)" to be efficient then I'll
> have to either get zipWith' exported or write my own lower level
As far as I know GHC prefers RULES to INLINE, but it's fragile.
You may check with -ddump-simpl-stat.
More information about the Haskell-Cafe