diff --git a/Data/IntervalMap/Generic/Base.hs b/Data/IntervalMap/Generic/Base.hs
--- a/Data/IntervalMap/Generic/Base.hs
+++ b/Data/IntervalMap/Generic/Base.hs
@@ -200,7 +200,7 @@
 
             ) where
 
-import Prelude hiding (null, lookup, map, filter, foldr, foldl, splitAt)
+import Prelude hiding (Foldable(..), lookup, map, filter, splitAt)
 import Data.Maybe (fromMaybe, fromJust)
 import Data.Bits (shiftR, (.&.))
 import qualified Data.Semigroup as Sem
@@ -1087,7 +1087,7 @@
 fromDistinctAscList :: (Interval k e) => [(k,v)] -> IntervalMap k v
 -- exactly 2^n-1 items have height n. They can be all black
 -- from 2^n - 2^n-2 items have height n+1. The lowest "row" should be red.
-fromDistinctAscList lyst = case h (length lyst) lyst of
+fromDistinctAscList lyst = case h (L.length lyst) lyst of
                              (T2 result []) -> result
                              _ -> error "fromDistinctAscList: list not fully consumed"
   where
diff --git a/Data/IntervalSet.hs b/Data/IntervalSet.hs
--- a/Data/IntervalSet.hs
+++ b/Data/IntervalSet.hs
@@ -131,7 +131,7 @@
 
             ) where
 
-import Prelude hiding (null, map, filter, foldr, foldl, splitAt)
+import Prelude hiding (Foldable(..), map, filter, splitAt)
 import Data.Bits (shiftR, (.&.))
 import qualified Data.Semigroup as Sem
 import Data.Monoid (Monoid(..))
@@ -690,7 +690,7 @@
 fromDistinctAscList :: (Interval k e) => [k] -> IntervalSet k
 -- exactly 2^n-1 items have height n. They can be all black
 -- from 2^n - 2^n-2 items have height n+1. The lowest "row" should be red.
-fromDistinctAscList lyst = case h (length lyst) lyst of
+fromDistinctAscList lyst = case h (L.length lyst) lyst of
                              (T2 result []) -> result
                              _ -> error "fromDistinctAscList: list not fully consumed"
   where
diff --git a/IntervalMap.cabal b/IntervalMap.cabal
--- a/IntervalMap.cabal
+++ b/IntervalMap.cabal
@@ -1,5 +1,5 @@
 Name:                IntervalMap
-Version:             0.6.2.0
+Version:             0.6.2.1
 Stability:           experimental
 Synopsis:            Containers for intervals, with efficient search.
 Homepage:            http://www.chr-breitkopf.de/comp/IntervalMap
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,4 @@
+0.6.2.1  Future-proof against potential Prelude.foldl'
 0.6.2.0  Bugfix: Interval.overlaps could be true for empty intervals
 0.6.1.3  Remove unneeded languages pragmas.
 0.6.1.2  Enable and fix more warnings.
diff --git a/test/IntervalSetTests.hs b/test/IntervalSetTests.hs
--- a/test/IntervalSetTests.hs
+++ b/test/IntervalSetTests.hs
@@ -8,7 +8,7 @@
 import Test.QuickCheck hiding (within)
 import Test.QuickCheck.Test (isSuccess)
 import Control.Monad (liftM)
-import Prelude hiding (null, map, filter, foldr, foldl, splitAt)
+import Prelude hiding (Foldable(..), map, filter, splitAt)
 import qualified Data.List as L
 
 import Data.IntervalSet
@@ -48,7 +48,7 @@
 
 prop_null (IS s) =                null s == (size s == 0)
 
-prop_size (IS s) =                size s == length (toList s)
+prop_size (IS s) =                size s == L.length (toList s)
 
 prop_singleton :: II -> Bool
 prop_singleton iv =               size (singleton iv) == 1
