On Fri, May 04, 2007 at 05:06:10PM -0700, Conal Elliott wrote: > Cool. You know which types to consider because jhc is a whole-program > compiler?
Yes. though, i have since redone the back end so there is no technical reason for it to be whole program any more, you can just benefit from more optimizations that way. The old backend required global knowledge to compile at all. > Given the whole program, why not monomorphize, and inline away all of the > dictionaries? Well that is the thing, there are no dictionaries at all, the only extra arguments passed in are the types so, f :: forall a . (Foo a, Baz a, Bar a Int, Bred a) => a -> a still is only passed the single hidden argument of 'a' since a case on it will determine what method to use. (+) a x y = case a of Int -> plusInt x y Float -> plusFloat x y and so forth. a here is a type, of kind '*'. since the method lookup is done explicitly via the case statement, it can be optimized via standard transformations in nice ways. John > > - Conal > > On 5/4/07, John Meacham <[EMAIL PROTECTED]> wrote: > > > >On Fri, May 04, 2007 at 03:07:41PM -0700, Conal Elliott wrote: > >> Does anyone know what became of Dictionary-free Overloading by Partial > >> Evaluation <http://web.cecs.pdx.edu/%7Empj/pubs/pepm94.html>? Is it > >> impractical for some reason? > > > >jhc also uses a dictionary free approach, doing a case directly on the > >type parameter. > > > >The nice thing about this is that _all_ methods can be determined by a > >single case evaluation, because finding out the right instance for any > >method will determine the right instance for all other methods too for a > >given type. The standard case-of-known-value optimization takes care of > >later scrutinizations (method lookups) on the same type. > > > > John > > > > > >-- > >John Meacham - ⑆repetae.net⑆john⑈ > >_______________________________________________ > >Glasgow-haskell-users mailing list > >Glasgow-haskell-users@haskell.org > >http://www.haskell.org/mailman/listinfo/glasgow-haskell-users > > > -- > Glasgow-haskell-users mailing list > Glasgow-haskell-users@haskell.org > http://www.haskell.org/mailman/listinfo/glasgow-haskell-users -- John Meacham - ⑆repetae.net⑆john⑈ _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users