> On Nov 30, 2022, at 9:42 PM, Benjamin Redelings > <benjamin.redeli...@gmail.com> wrote: > > (Q1) Did GHC evolve to this point starting from something fairly close to the > OutsideIn paper?
Yes. > > (Q2) Is the new approach (i.e. eager type family rewriting) mostly to making > rewriting faster? No. Simpler, not faster (and not slower). Or that was the intent. > > (Q3) Does it sound reasonable to implement the approach from the OutsideIn > paper, and than gradually transform it to look more like GHC? > Sure, but I'm not sure what the advantage of doing so would be. This is all my doing: for years and years, GHC's treatment of type families was as described in OutsideIn. But I never could quite figure out why we needed to have flattening variables. And so I got rid of them -- this seemed like a simplification. I'm not sure it really panned out, though: without flattening variables, we need these cycle-breaker variables (which are pretty gross). On the flip side, I think the new approach might enable the possibility of reducing type families only in "strict" positions (e.g. the argument to another type family or perhaps a class during instance lookup). In the end, I don't think either the old way or the new way is the Right Answer. Maybe you can come up with something better than both! Richard > -BenRI > > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs