diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.0.0.1
+-------
+* Enable compilation on GHC < 7.6
+
 0
 -
 * Initialized repository based on code from `Quine.StateVar` in [quine](http://github.com/ekmett/quine).
diff --git a/foreign-var.cabal b/foreign-var.cabal
--- a/foreign-var.cabal
+++ b/foreign-var.cabal
@@ -1,6 +1,6 @@
 name:          foreign-var
 category:      FFI, Mutable State
-version:       0
+version:       0.0.0.1
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
diff --git a/src/Foreign/Var.hs b/src/Foreign/Var.hs
--- a/src/Foreign/Var.hs
+++ b/src/Foreign/Var.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
 {-# LANGUAGE FunctionalDependencies #-}
@@ -173,7 +174,13 @@
 
 instance HasUpdate (IORef a) a a where
   r $~ f  = liftIO $ atomicModifyIORef r $ \a -> (f a,())
+#if __GLASGOW_HASKELL__ >= 706
   r $~! f = liftIO $ atomicModifyIORef' r $ \a -> (f a,())
+#else
+  r $~! f = liftIO $ do
+    s <- atomicModifyIORef r $ \a -> let s = f a in (s, s)
+    s `seq` return ()
+#endif
 
 instance HasUpdate (TVar a) a a where
   r $~ f = liftIO $ atomically $ do
