-%
+
% (c) The AQUA Project, Glasgow University, 1994-1998
%
\section[FiniteMap]{An implementation of finite maps}
#define OUTPUTABLE_key {--}
#endif
-import {-# SOURCE #-} Name ( Name )
import GlaExts
-import FastString
import Maybes
import Bag ( Bag, foldrBag )
+import Util
import Outputable
#if ! OMIT_NATIVE_CODEGEN
addListToFM fm key_elt_pairs = addListToFM_C (\ old new -> new) fm key_elt_pairs
addListToFM_C combiner fm key_elt_pairs
- = foldl add fm key_elt_pairs -- foldl adds from the left
+ = foldl' add fm key_elt_pairs -- foldl adds from the left
where
add fmap (key,elt) = addToFM_C combiner fmap key elt
\end{code}
LT -> mkBalBranch key elt (delFromFM fm_l del_key) fm_r
EQ -> glueBal fm_l fm_r
-delListFromFM fm keys = foldl delFromFM fm keys
+delListFromFM fm keys = foldl' delFromFM fm keys
\end{code}
%************************************************************************
| otherwise -- We now need the same two cases as in glueBal above.
= glueBal fm_l fm_r
where
- (mid_key_l,mid_elt_l) = findMax fm_l
- (mid_key_r,mid_elt_r) = findMin fm_r
size_l = sizeFM fm_l
size_r = sizeFM fm_r
\end{code}
\tr{Uniques}, for dastardly efficiency reasons.
\begin{code}
-#if __GLASGOW_HASKELL__ && !defined(REALLY_HASKELL_1_3)
+#if 0
+
+#if __GLASGOW_HASKELL__
{-# SPECIALIZE addListToFM
:: FiniteMap (FAST_STRING, FAST_STRING) elt -> [((FAST_STRING, FAST_STRING),elt)] -> FiniteMap (FAST_STRING, FAST_STRING) elt
#-}
#endif {- compiling with ghc and have specialiser -}
+
+#endif {- 0 -}
\end{code}