diff --git a/acid-state.cabal b/acid-state.cabal
--- a/acid-state.cabal
+++ b/acid-state.cabal
@@ -1,5 +1,5 @@
 Name:                acid-state
-Version:             0.15.1
+Version:             0.15.2
 Synopsis:            Add ACID guarantees to any serializable Haskell data structure.
 Description:         Use regular Haskell data structures as your database and get stronger ACID guarantees than most RDBMS offer.
 Homepage:            https://github.com/acid-state/acid-state
@@ -49,7 +49,7 @@
                        bytestring >= 0.10.2,
                        cereal >= 0.4.1.0,
                        containers,
-                       safecopy >= 0.6,
+                       safecopy >= 0.6 && < 0.11,
                        stm >= 2.4,
                        directory,
                        filelock,
diff --git a/examples/ParameterisedState.hs b/examples/ParameterisedState.hs
--- a/examples/ParameterisedState.hs
+++ b/examples/ParameterisedState.hs
@@ -33,7 +33,7 @@
 deriving instance Typeable1 Store
 #endif
 
-instance (Ord k, Serialize k) => SafeCopy (Store k)
+instance (Ord k, Serialize k, SafeCopy k, Typeable k) => SafeCopy (Store k)
 instance (Ord k, Serialize k) => Serialize (Store k)
 
 insertStore
diff --git a/src/Data/Acid/Local.hs b/src/Data/Acid/Local.hs
--- a/src/Data/Acid/Local.hs
+++ b/src/Data/Acid/Local.hs
@@ -242,6 +242,7 @@
         fromNested b = case runGetLazy safeGet b of
                          Left msg -> checkpointRestoreError msg
                          Right v  -> v
+    errorTypeName s = "Checkpoint " ++ errorTypeName s
 
 
 -- | Create an AcidState given an initial value.
diff --git a/src/Data/Acid/TemplateHaskell.hs b/src/Data/Acid/TemplateHaskell.hs
--- a/src/Data/Acid/TemplateHaskell.hs
+++ b/src/Data/Acid/TemplateHaskell.hs
@@ -341,6 +341,7 @@
                    (return ty)
                    [ funD 'putCopy [clause [putClause] (normalB (contained putExp)) []]
                    , valD (varP 'getCopy) (normalB (contained getArgs)) []
+                   , funD 'errorTypeName [clause [wildP] (normalB (litE (stringL (pprint ty)))) []]
                    ]
     where TypeAnalysis { tyvars, context, argumentTypes = args } = analyseType eventName eventType
           eventStructName = toStructName eventName
