INLINE pragma bogus
Milan Straka
fox at ucw.cz
Fri Sep 24 05:08:16 EDT 2010
Hi,
> In Data.Map we see
>
> mapKeysMonotonic :: (k1->k2) -> Map k1 a -> Map k2 a
> mapKeysMonotonic _ Tip = Tip
> mapKeysMonotonic f (Bin sz k x l r) =
> Bin sz (f k) x (mapKeysMonotonic f l) (mapKeysMonotonic f r)
> {-# INLINE mapKeysMonotonic #-}
>
>
> But mapKeysMonotonic is recursive, so it isn't going to get inlined. Lint bleats about this.
>
> Remove the pragma?
or we could do worker/wrapper transformation which would make
mapKeysMonotonic non-recursive.
>
> Same for Data.IntMap.submapCmp, which is again recursive.
>
> Incidentally submapCmp is a MASSIVE function to put an INLINE pragma on! Do you really need this much inlining?
I did not put the inlines all over the place, and I happily agree to
remove it :) I will take care of it in the INLINE problem patch.
Milan
More information about the Libraries
mailing list