Remove most INLINE from Map, Set, IntMap and IntSet.
authorMilan Straka <fox@ucw.cz>
Fri, 24 Sep 2010 15:20:08 +0000 (15:20 +0000)
committerMilan Straka <fox@ucw.cz>
Fri, 24 Sep 2010 15:20:08 +0000 (15:20 +0000)
commitb96ffebb56d8275326c88c937b7f0dfba3bf681c
tree8da6c2d0baa1cc61a2e59df998b22de6e662ce45
parenta184ff7fd9c8d29e403aa76a4dba943c1be6cd1f
Remove most INLINE from Map, Set, IntMap and IntSet.

Because of a code bloat the INLINEs cause, remove most of
them. The only INLINEs left are the following:
- only in Set and Map, because in IntMap and IntSet the specialization
  does not help
- only on functions which need Ord
- only on 'small' functions, namely member, notMember, lookup*,
  insert*, delete*, adjust*, alter*, update*

All other functions of Map, Set, IntMap and IntSet are marked INLINABLE,
even if they are recursive.

The INLINEs left are only a short-term solution. In the long run the
auto-specialization of INLINABLE methods seems a good way (maybe
SPECIALIZABLE).
Data/IntMap.hs
Data/IntSet.hs
Data/Map.hs
Data/Set.hs