| I have a rewrite rule as follows:
|
| {-# RULES
| "transform/transform" forall (f::forall m. Monoid m => (a -> m) -> (b -
| > m))
| (g::forall m. Monoid m => (b -> m) -> (c
| -> m))
| (l::FMList c). transform f (transform g
| l) = transform (g.f) l
| #-}
|
| It fires on this code:
|
| print $ transform (. (*2)) (transform (. (+1)) (upto 10))
|
| But it doesn't fire on this code:
|
| print $ map (*2) (map (+1) (upto 10)))That's odd. It works for me. Specifically, I compiled the attached code with GHC 6.10, and I get two firings of transform/transform. Does that not happen for you? Simon
Rules.hs
Description: Rules.hs
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
