diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 Changelog for the `reactive-banana` package
 -------------------------------------------
 
+**version 1.1.0.1**
+
+* Adapt library to work with GHC-8.0.1.
+
 **version 1.1.0.0**
 
 * Fix bug: Types of `switchB` and `switchE` need to be in the `Moment` monad.
diff --git a/reactive-banana.cabal b/reactive-banana.cabal
--- a/reactive-banana.cabal
+++ b/reactive-banana.cabal
@@ -1,5 +1,5 @@
 Name:                reactive-banana
-Version:             1.1.0.0
+Version:             1.1.0.1
 Synopsis:            Library for functional reactive programming (FRP).
 Description:
     Reactive-banana is a library for Functional Reactive Programming (FRP).
@@ -23,7 +23,7 @@
 Author:              Heinrich Apfelmus
 Maintainer:          Heinrich Apfelmus <apfelmus quantentunnel de>
 Category:            FRP
-Cabal-version:       >= 1.18
+Cabal-version:       >= 1.16
 Build-type:          Simple
 
 extra-source-files:     CHANGELOG.md,
diff --git a/src/Reactive/Banana/Prim/Util.hs b/src/Reactive/Banana/Prim/Util.hs
--- a/src/Reactive/Banana/Prim/Util.hs
+++ b/src/Reactive/Banana/Prim/Util.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-----------------------------------------------------------------------------
     reactive-banana
 ------------------------------------------------------------------------------}
@@ -50,8 +51,13 @@
     Weak pointers
 ------------------------------------------------------------------------------}
 mkWeakIORefValueFinalizer :: IORef a -> value -> IO () -> IO (Weak value)
+#if MIN_VERSION_base(4,9,0)
+mkWeakIORefValueFinalizer r@(GHC.IORef (GHC.STRef r#)) v (GHC.IO f) = GHC.IO $ \s ->
+  case GHC.mkWeak# r# v f s of (# s1, w #) -> (# s1, GHC.Weak w #)
+#else
 mkWeakIORefValueFinalizer r@(GHC.IORef (GHC.STRef r#)) v f = GHC.IO $ \s ->
   case GHC.mkWeak# r# v f s of (# s1, w #) -> (# s1, GHC.Weak w #)
+#endif
 
 mkWeakIORefValue :: IORef a -> value -> IO (Weak value)
 mkWeakIORefValue a b = mkWeakIORefValueFinalizer a b (return ())
