@@ -248,15 +248,20 @@ append' (Builder f) (Builder g) = Builder (f . g)
248248
249249{-# RULES
250250
251−"writeN/combine" forall a b (f::forall s. A.MArray s Word16 -> Int -> ST s ())
252− (g::forall s. A.MArray s Word16 -> Int -> ST s ()).
251+"append/writeN" forall a b (f::forall s. A.MArray s Word16 -> Int -> ST s ())
252+ (g::forall s. A.MArray s Word16 -> Int -> ST s ()) ws.
253+ append (writeN a f) (append (writeN b g) ws) =
254+ append (writeN (a+b) (\marr o -> f marr o >> g marr (o+a))) ws
255+
256+"writeN/writeN" forall a b (f::forall s. A.MArray s Word16 -> Int -> ST s ())
257+ (g::forall s. A.MArray s Word16 -> Int -> ST s ()).
253258 append (writeN a f) (writeN b g) =
254259 writeN (a+b) (\marr o -> f marr o >> g marr (o+a))
255260
256−"ensureFree/combine" forall a b .
261+"ensureFree/ensureFree" forall a b .
257262 append (ensureFree a) (ensureFree b) = ensureFree (max a b)
258263
259−"flush/combine"
264+"flush/flush"
260265 append flush flush = flush
261266
262267 #-}