inlining higher-order-functions?

Norman Ramsey nr at
Fri Dec 22 00:23:57 EST 2006

I've just discovered the {-# INLINE #-} pragma, but it's not
doing as much for me as I had hoped.

My example is complicated, so let me present a simpler analogy.
Suppose I defined

compose :: (b -> c) -> (a -> b) -> (a -> c)
compose f g = \x -> f (g x)

I can easily persuade GHC to inline 'compose'.
But when 'compose' is applied to known arguments, I wish
f and g to be inlined in the body of 'compose'.
Is there a pragma that will do the trick?
(I attempted to put an INLINE pragma in a where clause,
but GHC was not amused.)


More information about the Glasgow-haskell-users mailing list