Thanks. This is interesting, I'll have to take a closer look at it. On Tue, Nov 8, 2016, 7:01 AM Oleg wrote: > > > On 21 April 2016 at 09:13, Gregory Malecha wrote: > > I'm wondering if there is any work (and interest) on supporting > > user-defined optimizations similar to GHC's rewrite rules in the Ocaml > > compiler. For example, a standard example would be specifying map fusion: > > to which Gabriel Scherer commented on Thu, 21 Apr 2016 12:02:14 -0400 > > > Another approach that might be worth trying (sorry for not thinking > > about it earlier) is MetaOCaml. I tend of think of it as a tool to > > explicitly specify and control partial evaluation strategies. > > Indeed. We'd like to point out an application of MetaOCaml, not just > to map fusion -- but also concat_map fusion and zip fusion, etc. We > present a streams library that supports the wide set of combinators -- > from map and filter to concat_map (flat_map) and zip -- and produces > the hand-written quality code. It is faster than Batteries by up to more > than two orders of magnitude. > > http://okmij.org/ftp/meta-programming/strymonas.pdf > http://strymonas.github.io/ > > Unlike GHC Rules, we guarantee the performance. > -- - gregory malecha gmalecha.github.io