on master help sign in
Add a flag to disable rewrite rules
c794c61Harendra Kumar
src/Streamly/Streams/StreamD.hs+2
@@ -124,10 +124,12 @@ fromStreamK m = Stream step m
124 yieldk a r = return $ Yield a r
124 yieldk a r = return $ Yield a r
125 in K.unStream m1 Nothing stop single yieldk
125 in K.unStream m1 Nothing stop single yieldk
126
126
127+#ifndef DISABLE_FUSION
127{-# RULES "fromStreamK/toStreamK fusion"
128{-# RULES "fromStreamK/toStreamK fusion"
128 forall s. toStreamK (fromStreamK s) = s #-}
129 forall s. toStreamK (fromStreamK s) = s #-}
129{-# RULES "toStreamK/fromStreamK fusion"
130{-# RULES "toStreamK/fromStreamK fusion"
130 forall s. fromStreamK (toStreamK s) = s #-}
131 forall s. fromStreamK (toStreamK s) = s #-}
132+#endif
131
133
132------------------------------------------------------------------------------
134------------------------------------------------------------------------------
133-- Construction
135-- Construction
streamly.cabal+8
@@ -92,6 +92,11 @@ flag dev
92 manual: True
92 manual: True
93 default: False
93 default: False
94
94
95+flag no-fusion
96+ description: Disable rewrite rules
97+ manual: True
98+ default: False
99+
95flag examples
100flag examples
96 description: Build including examples
101 description: Build including examples
97 manual: True
102 manual: True
@@ -141,6 +146,9 @@ library
141 default-language: Haskell2010
146 default-language: Haskell2010
142 ghc-options: -Wall
147 ghc-options: -Wall
143
148
149+ if flag(no-fusion)
150+ cpp-options: -DDISABLE_FUSION
151+
144 if flag(diag)
152 if flag(diag)
145 cpp-options: -DDIAGNOSTICS
153 cpp-options: -DDIAGNOSTICS
146
154