The best way I know is to put INLINABLE on all functions with dictionaries
that you want removed. That's what we do in e.g. containers. The pragma is
perhaps a bit misnamed, as it doesn't only imply that we make the source of
the function available for inlining, but also that we specialize the
dictionary arguments at every call site, when known.

On Thu, Jan 28, 2016 at 1:04 AM, Conal Elliott <co...@conal.net> wrote:

> I'm looking for pointers on getting GHC to eliminate more overloading &
> polymorphism. I think this sort of thing mainly happens in the Specialise
> module. The default GHC flag settings get me a couple levels of
> monomorphization and dictionary removal, but I want to go further. I've
> tried -fspecialise-aggressively, but it didn't seem to make a difference,
> and I haven't found this flag described in the GHC user's guide. Anyone
> have pointers to more information?
>
> Thanks, - Conal
>
> _______________________________________________
> 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

Reply via email to