diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
+0.3
+---
+* switched to new `base` (>= 4.8 && < 5)
+
 0.2
 ---
 * switched to new `base` (>= 4.7 && < 5)
-
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
 # ap-reflect
 
+[![Hackage package](http://img.shields.io/hackage/v/ap-reflect.svg)](http://hackage.haskell.org/package/ap-reflect)
 [![Build Status](https://travis-ci.org/cmc-msu-ai/ap-reflect.svg)](https://travis-ci.org/cmc-msu-ai/ap-reflect)
 
 Partial evaluation reflection a la simple-reflect.
diff --git a/ap-reflect.cabal b/ap-reflect.cabal
--- a/ap-reflect.cabal
+++ b/ap-reflect.cabal
@@ -1,5 +1,5 @@
 name:                ap-reflect
-version:             0.2
+version:             0.3
 synopsis:            Partial evaluation reflection a la simple-reflect.
 description:         The library provides a simple reflection technique,
                      substituting functions like @fmap@ and @\<*\>@ with reflection-aware analogues.
@@ -25,7 +25,7 @@
   ghc-options:         -Wall
   exposed-modules:     Debug.Reflect
   -- other-modules:       
-  build-depends:       base >= 4.7 && < 5
+  build-depends:       base >= 4.8 && < 5
 
 Source-Repository head
   Type:                 git
diff --git a/examples/examples.hs b/examples/examples.hs
--- a/examples/examples.hs
+++ b/examples/examples.hs
@@ -1,7 +1,7 @@
 {-# LANGUAGE TypeOperators #-}
 
 import Control.Applicative
-import Control.Monad.Identity
+import Data.Functor.Identity
 
 import Debug.SimpleReflect
 import Debug.Reflect
@@ -32,23 +32,16 @@
 (.:) :: (Show a) => a ~> [a] ~> [a]
 (.:) = makeBinOp ":" (:)
 
-sequenceA :: (Show a, Show (f a), Show (f [a]), Show (f ([a] ~> [a])), Applicative f) => [f a] -> Ap (f [a])
-sequenceA [] = pure'' []
-sequenceA (x:xs) = Val ap' :$ ((.:) -$- x) :$ sequenceA xs
+sequenceA' :: (Show a, Show (f a), Show (f [a]), Show (f ([a] ~> [a])), Applicative f) => [f a] -> Ap (f [a])
+sequenceA' [] = pure'' []
+sequenceA' (x:xs) = Val ap' :$ ((.:) -$- x) :$ sequenceA' xs
 
-traverse :: (Show a, Show b, Show (f b), Show (f [b]), Show (f ([b] ~> [b])), Applicative f) => (a -> f b) -> [a] -> Ap (f [b])
-traverse _ [] = pure'' []
-traverse f (x:xs) = Val ap' :$ (Val fmap' :$ Val (.:) :$ fx) :$ traverse f xs
+traverse' :: (Show a, Show b, Show (f b), Show (f [b]), Show (f ([b] ~> [b])), Applicative f) => (a -> f b) -> [a] -> Ap (f [b])
+traverse' _ [] = pure'' []
+traverse' f (x:xs) = Val ap' :$ (Val fmap' :$ Val (.:) :$ fx) :$ traverse' f xs
   where fx = Val (Fn "f" f) :$ Val x
 
-instance Show m => Show (Const m a) where
-  show (Const x) = "Const " ++ addParens (show x)
-    where addParens s = if ' ' `elem` s then parens s else s
 
-instance Show a => Show (Identity a) where
-  show (Identity x) = "Identity " ++ addParens (show x)
-    where addParens s@(x:_) = if x /= '(' && ' ' `elem` s then parens s else s
-
 main :: IO ()
 main = do
 
@@ -92,11 +85,11 @@
   line
 
   let f x = if even (length x) then Just (head x) else Nothing
-  mapM_ print . reductions $ traverse f ["ab","cdef","gh"]
+  mapM_ print . reductions $ traverse' f ["ab","cdef","gh"]
   line
-  mapM_ print . reductions $ sequenceA [Just a, Just b, Just c]
+  mapM_ print . reductions $ sequenceA' [Just a, Just b, Just c]
   line
-  mapM_ print . reductions $ sequenceA [Just a, Nothing, Just c]
+  mapM_ print . reductions $ sequenceA' [Just a, Nothing, Just c]
   line
   mapM_ print . reductions $ makeBinOp "f" (+) -$- [x, y]
   line
@@ -135,4 +128,3 @@
   line
   mapM_ print . reductions $ (.+) -$- Left a -*- Right b
   line
-
