diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+4.8.0.1
+-------
+* Allow complation with older versions of `base`. (Foldable didn't add foldl' until base 4.6)
+
 4.8
 -----
 * Added a `MonadFree` instance for `EitherT` (frrom the `either` package).
diff --git a/free.cabal b/free.cabal
--- a/free.cabal
+++ b/free.cabal
@@ -1,6 +1,6 @@
 name:          free
 category:      Control, Monads
-version:       4.8
+version:       4.8.0.1
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
diff --git a/src/Control/Monad/Free.hs b/src/Control/Monad/Free.hs
--- a/src/Control/Monad/Free.hs
+++ b/src/Control/Monad/Free.hs
@@ -7,10 +7,13 @@
 #if __GLASGOW_HASKELL__ >= 707
 {-# LANGUAGE DeriveDataTypeable #-}
 #endif
+#ifndef MIN_VERSION_base
+#define MIN_VERSION_base(x,y,z) 1
+#endif
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.Free
--- Copyright   :  (C) 2008-2013 Edward Kmett
+-- Copyright   :  (C) 2008-2014 Edward Kmett
 -- License     :  BSD-style (see the file LICENSE)
 --
 -- Maintainer  :  Edward Kmett <ekmett@gmail.com>
@@ -219,12 +222,14 @@
         Free fa -> foldr (flip go) r fa
   {-# INLINE foldr #-}
 
+#if MIN_VERSION_base(4,6,0)
   foldl' f = go where
     go r free =
       case free of
         Pure a -> f r a
         Free fa -> foldl' go r fa
   {-# INLINE foldl' #-}
+#endif
 
 instance Foldable1 f => Foldable1 (Free f) where
   foldMap1 f = go where
diff --git a/src/Control/Monad/Free/Church.hs b/src/Control/Monad/Free/Church.hs
--- a/src/Control/Monad/Free/Church.hs
+++ b/src/Control/Monad/Free/Church.hs
@@ -1,7 +1,11 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE FlexibleInstances #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
+#ifndef MIN_VERSION_base
+#define MIN_VERSION_base(x,y,z) 1
+#endif
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.Free.Church
@@ -18,7 +22,7 @@
 -- datatype that allows for arbitrarily deep nesting of the base functor. This is
 -- akin to a tree, with the leaves containing the values, and the nodes being a
 -- level of 'Functor' over subtrees.
--- 
+--
 -- For each time that the `fmap` or `>>=` operations is used, the old tree is
 -- traversed up to the leaves, a new set of nodes is allocated, and
 -- the old ones are garbage collected. Even if the Haskell runtime
@@ -30,12 +34,12 @@
 --
 -- * All uses of `fmap` are collapsed into a single one, so that the values on the
 --   _leaves_ are transformed in one pass.
--- 
+--
 --   prop> fmap f . fmap g == fmap (f . g)
--- 
+--
 -- * All uses of `>>=` are right associated, so that every new subtree created
 --   is final.
--- 
+--
 --   prop> (m >>= f) >>= g == m >>= (\x -> f x >>= g)
 --
 -- Asymptotically, the Church encoding supports the monadic operations more
@@ -73,9 +77,9 @@
 import Prelude hiding (foldr)
 
 -- | The Church-encoded free monad for a functor @f@.
--- 
+--
 -- It is /asymptotically/ more efficient to use ('>>=') for 'F' than it is to ('>>=') with 'Free'.
--- 
+--
 -- <http://comonad.com/reader/2011/free-monads-for-less-2/>
 newtype F f a = F { runF :: forall r. (a -> r) -> (f r -> r) -> r }
 
@@ -113,9 +117,11 @@
     foldr f r xs = runF xs f (foldr (.) id) r
     {-# INLINE foldr #-}
 
-    foldl' f r xs = runF xs (flip f) (foldr (!>>>) id) r
-      where (!>>>) f g = \r -> g $! f r
+#if MIN_VERSION_base(4,6,0)
+    foldl' f z xs = runF xs (flip f) (foldr (!>>>) id) z
+      where (!>>>) h g = \r -> g $! h r
     {-# INLINE foldl' #-}
+#endif
 
 instance MonadPlus f => MonadPlus (F f) where
   mzero = F (\_ kf -> kf mzero)
@@ -170,13 +176,13 @@
   go kp kf (Free fma) = kf (fmap (go kp kf) fma)
 
 -- | Improve the asymptotic performance of code that builds a free monad with only binds and returns by using 'F' behind the scenes.
--- 
+--
 -- This is based on the \"Free Monads for Less\" series of articles by Edward Kmett:
--- 
+--
 -- * <http://comonad.com/reader/2011/free-monads-for-less/   Free monads for less — Part 1>
--- 
+--
 -- * <http://comonad.com/reader/2011/free-monads-for-less-2/ Free monads for less — Part 2>
---   
+--
 -- and <http://www.iai.uni-bonn.de/~jv/mpc08.pdf \"Asymptotic Improvement of Computations over Free Monads\"> by Janis Voightländer.
 improve :: Functor f => (forall m. MonadFree f m => m a) -> Free f a
 improve m = fromF m
