diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for chr-data
 
+## 0.1.0.1  -- 2018-08-18
+
+* ghc 8.4
+
 ## 0.1.0.0  -- YYYY-mm-dd
 
 * First version. Released on an unsuspecting world.
diff --git a/chr-data.cabal b/chr-data.cabal
--- a/chr-data.cabal
+++ b/chr-data.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                chr-data
-version:             0.1.0.0
+version:             0.1.0.1
 synopsis:            Datatypes required for chr library
 description:         Datatypes required for chr library, in particular searching on treestructures, lookup abstraction, substitutions, etc. These are also used (via uhc-util) in UHC.
 homepage:            https://github.com/atzedijkstra/chr
@@ -51,7 +51,7 @@
     FlexibleInstances
   -- other-extensions:
   build-depends:
-    base >=4.9 && < 5,
+    base >=4.8 && < 5,
     array >= 0.3,
     containers >= 0.4,
     hashable >= 1.2.4,
diff --git a/src/CHR/Data/FastSeq.hs b/src/CHR/Data/FastSeq.hs
--- a/src/CHR/Data/FastSeq.hs
+++ b/src/CHR/Data/FastSeq.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
 module CHR.Data.FastSeq
   ( FastSeq((:++:),(::+:),(:+::))
   , Seq
@@ -41,6 +43,11 @@
 -------------------------------------------------------------------------
 -- Instances
 -------------------------------------------------------------------------
+
+#if __GLASGOW_HASKELL__ >= 804
+instance Semigroup (FastSeq a) where
+  (<>) = union
+#endif
 
 instance Monoid (FastSeq a) where
   mempty  = empty
diff --git a/src/CHR/Data/Lookup/Instances.hs b/src/CHR/Data/Lookup/Instances.hs
--- a/src/CHR/Data/Lookup/Instances.hs
+++ b/src/CHR/Data/Lookup/Instances.hs
@@ -123,6 +123,7 @@
   toList            = VAr.toList
   fromList          = VAr.fromList
   null              = VAr.null
+  size              = VAr.size
 
 -------------------------------------------------------------------------------------------
 -- Instances: LookupApply
diff --git a/src/CHR/Data/VecAlloc.hs b/src/CHR/Data/VecAlloc.hs
--- a/src/CHR/Data/VecAlloc.hs
+++ b/src/CHR/Data/VecAlloc.hs
@@ -15,6 +15,8 @@
   , toList
   , fromList
   , null
+  
+  , size
   )
   where
 
@@ -101,3 +103,6 @@
 unionWith :: (e -> e -> e) -> VecAlloc e -> VecAlloc e -> VecAlloc e
 unionWith f (VecAlloc {_vecallocVec=v1}) (VecAlloc {_vecallocVec=v2})
 -}
+
+size :: VecAlloc e -> Int
+size = V.length . _vecallocVec
