diff --git a/Data/AList.hs b/Data/AList.hs
--- a/Data/AList.hs
+++ b/Data/AList.hs
@@ -11,15 +11,13 @@
 singleton x = AListTip x
 append = AListAppend 
 
-{-# INLINABLE fold #-}
-fold f base (AListAppend a b) = f (fold f base a) (fold f base b)
-fold f base (AListTip x) = x
-fold f base AListEmpty = base
+instance Foldable AList where
+   foldMap f AListEmpty = mempty
+   foldMap f (AListTip a) = f a
+   foldMap f (AListAppend a b) = foldMap f a `mappend` foldMap f b
 
 cons x alist = singleton x `append` alist 
 snoc alist x = alist `append` singleton x
-
-sum = fold (+) 0
 
 drawAList x = '[' : drawAList' x ++ "]"
 drawAList' AListEmpty = ""
diff --git a/Data/AList/NonEmpty.hs b/Data/AList/NonEmpty.hs
--- a/Data/AList/NonEmpty.hs
+++ b/Data/AList/NonEmpty.hs
@@ -6,6 +6,10 @@
                      | AListNonEmptySingle a
   deriving (Read,Show)
 
+instance Foldable AListNonEmpty where
+   foldMap f (AListNonEmptySingle a) = f a
+   foldMap f (AListNonEmptyAppend a b) = foldMap f a `mappend` foldMap f b
+
 append = AListNonEmptyAppend
 
 instance Semigroup (AListNonEmpty a) where
diff --git a/alist.cabal b/alist.cabal
--- a/alist.cabal
+++ b/alist.cabal
@@ -10,7 +10,7 @@
 -- PVP summary:      +-+------- breaking API changes
 --                   | | +----- non-breaking API additions
 --                   | | | +--- code changes with no API change
-version:             0.1.1.6
+version:             0.1.1.7
 
 -- A short (one-line) description of the package.
 synopsis:            lists with O(1) append
