
| I'm thinking in terms of some way of marking foreign functions to specify | how they can be optimized out or specifying rewrite sequences eg | | x >> api_sync >> api_pop >> api_sync >> y = x >> api_pop
| api_sync >> y
You should be able to say something like RULE api_sync >>= (\_ -> api_pop >>= rest) = api_pop >>= rest api_pop >>= (\_ -> api_sync >>= rest) = api_pop >>= rest Do-notation is desugared to (>>=) stuff. Give it a try on a small example and see if it works SImon | | I've read the manual (7.10) on rewrite rules, but I'm having difficulty | understanding how to express the lhs of the above equation as a rewrite rule | so that it matches a sequence anywhere in a do block (to deal with nested | parentheses and the use of >>= instead of >>) | | Any ideas? | | Thanks, Brian. | | _______________________________________________ | Glasgow-haskell-users mailing list | Glasgow-haskell-users@haskell.org | http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
participants (1)
-
Simon Peyton-Jones