diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+#### 0.2.0.2
+
+* Allow `rest-core 0.36.*`
+
 #### 0.2.0.1
 
 * Allow filepath 1.4 and base 4.9/GHC 7.10.
diff --git a/example-api/Api/Test.hs b/example-api/Api/Test.hs
--- a/example-api/Api/Test.hs
+++ b/example-api/Api/Test.hs
@@ -4,8 +4,6 @@
   , LambdaCase
   , OverloadedStrings
   , ScopedTypeVariables
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Api.Test where
 
@@ -17,8 +15,7 @@
 import Data.Text (Text)
 import GHC.Generics
 import Generics.Generic.Aeson
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import Rest
@@ -32,8 +29,6 @@
 type WithText = ReaderT Text BlogApi
 
 data Err = Err deriving (Generic, Show, Typeable)
-deriveAll ''Err "PFErr"
-type instance PF Err = PFErr
 instance ToJSON     Err where toJSON    = gtoJson
 instance FromJSON   Err where parseJSON = gparseJson
 instance JSONSchema Err where schema    = gSchema
@@ -43,8 +38,6 @@
   toResponseCode _ = 400
 
 data Ok = Ok deriving (Generic, Show, Typeable)
-deriveAll ''Ok "PFOk"
-type instance PF Ok = PFOk
 instance XmlPickler Ok where xpickle = gxpickle
 instance ToJSON     Ok where toJSON    = gtoJson
 instance FromJSON   Ok where parseJSON = gparseJson
@@ -114,7 +107,7 @@
 octetStreamOut = mkInputHandler (fileI . fileO . xmlJsonE) $
   \case
     "error" -> throwError $ domainReason Err
-    _       -> return ("ok", "ok")
+    _       -> return ("ok", "ok", False)
 
 onlyInput :: Handler WithText
 onlyInput = mkInputHandler jsonI $ \() -> throwError NotFound
diff --git a/example-api/Api/Test/Err2.hs b/example-api/Api/Test/Err2.hs
--- a/example-api/Api/Test/Err2.hs
+++ b/example-api/Api/Test/Err2.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Api.Test.Err2 where
 
@@ -11,15 +9,12 @@
 import Data.JSON.Schema
 import GHC.Generics
 import Generics.Generic.Aeson
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import Rest
 
 data Err = Err deriving (Generic, Show, Typeable)
-deriveAll ''Err "PFErr"
-type instance PF Err = PFErr
 instance ToJSON     Err where toJSON    = gtoJson
 instance FromJSON   Err where parseJSON = gparseJson
 instance JSONSchema Err where schema    = gSchema
diff --git a/example-api/Type/Comment.hs b/example-api/Type/Comment.hs
--- a/example-api/Type/Comment.hs
+++ b/example-api/Type/Comment.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.Comment (Comment (..)) where
 
@@ -12,8 +10,7 @@
 import Data.Time
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import Type.Post ()
@@ -24,9 +21,6 @@
   , createdTime :: UTCTime
   , content     :: Text
   } deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''Comment "PFComment"
-type instance PF Comment = PFComment
 
 instance XmlPickler Comment where xpickle = gxpickle
 instance JSONSchema Comment where schema = gSchema
diff --git a/example-api/Type/CreatePost.hs b/example-api/Type/CreatePost.hs
--- a/example-api/Type/CreatePost.hs
+++ b/example-api/Type/CreatePost.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.CreatePost where
 
@@ -11,8 +9,7 @@
 import Data.Text (Text)
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 type Title = Text
@@ -21,9 +18,6 @@
   { title   :: Title
   , content :: Text
   } deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''CreatePost "PFCreatePost"
-type instance PF CreatePost = PFCreatePost
 
 instance XmlPickler CreatePost where xpickle = gxpickle
 instance JSONSchema CreatePost where schema = gSchema
diff --git a/example-api/Type/Post.hs b/example-api/Type/Post.hs
--- a/example-api/Type/Post.hs
+++ b/example-api/Type/Post.hs
@@ -2,8 +2,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.Post where
 
@@ -13,8 +11,7 @@
 import Data.Time (UTCTime)
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import qualified Type.User as User
@@ -29,9 +26,6 @@
   , title       :: Title
   , content     :: Text
   } deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''Post "PFPost"
-type instance PF Post = PFPost
 
 instance XmlPickler Post where xpickle = gxpickle
 instance JSONSchema Post where schema = gSchema
diff --git a/example-api/Type/PostError.hs b/example-api/Type/PostError.hs
--- a/example-api/Type/PostError.hs
+++ b/example-api/Type/PostError.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.PostError where
 
@@ -10,16 +8,12 @@
 import Data.JSON.Schema
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Rest.Error
 import Text.XML.HXT.Arrow.Pickle
 
 data PostError = InvalidTitle | InvalidContent
   deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''PostError "PFPostError"
-type instance PF PostError = PFPostError
 
 instance XmlPickler PostError where xpickle = gxpickle
 instance JSONSchema PostError where schema = gSchema
diff --git a/example-api/Type/User.hs b/example-api/Type/User.hs
--- a/example-api/Type/User.hs
+++ b/example-api/Type/User.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.User where
 
@@ -11,8 +9,7 @@
 import Data.Text (Text)
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 type Name = Text
@@ -22,9 +19,6 @@
   { name     :: Name
   , password :: Password
   } deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''User "PFUser"
-type instance PF User = PFUser
 
 instance XmlPickler User where xpickle = gxpickle
 instance JSONSchema User where schema = gSchema
diff --git a/example-api/Type/UserComment.hs b/example-api/Type/UserComment.hs
--- a/example-api/Type/UserComment.hs
+++ b/example-api/Type/UserComment.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.UserComment where
 
@@ -11,8 +9,7 @@
 import Data.Text (Text)
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import Type.User (User)
@@ -21,9 +18,6 @@
   { user    :: User
   , comment :: Text
   } deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''UserComment "PFUserComment"
-type instance PF UserComment = PFUserComment
 
 instance XmlPickler UserComment where xpickle = gxpickle
 instance JSONSchema UserComment where schema = gSchema
diff --git a/example-api/Type/UserInfo.hs b/example-api/Type/UserInfo.hs
--- a/example-api/Type/UserInfo.hs
+++ b/example-api/Type/UserInfo.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.UserInfo where
 
@@ -10,8 +8,7 @@
 import Data.JSON.Schema
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import qualified Type.User as User
@@ -19,9 +16,6 @@
 data UserInfo = UserInfo
   { name :: User.Name
   } deriving (Generic, Show, Typeable)
-
-deriveAll ''UserInfo "PFUserInfo"
-type instance PF UserInfo = PFUserInfo
 
 instance XmlPickler UserInfo where xpickle = gxpickle
 instance JSONSchema UserInfo where schema = gSchema
diff --git a/example-api/Type/UserPost.hs b/example-api/Type/UserPost.hs
--- a/example-api/Type/UserPost.hs
+++ b/example-api/Type/UserPost.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.UserPost where
 
@@ -10,8 +8,7 @@
 import Data.JSON.Schema
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Text.XML.HXT.Arrow.Pickle
 
 import Type.CreatePost (CreatePost)
@@ -19,9 +16,6 @@
 
 data UserPost = UserPost { user :: User, post :: CreatePost }
   deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''UserPost "PFUserPost"
-type instance PF UserPost = PFUserPost
 
 instance XmlPickler UserPost where xpickle = gxpickle
 instance JSONSchema UserPost where schema = gSchema
diff --git a/example-api/Type/UserSignupError.hs b/example-api/Type/UserSignupError.hs
--- a/example-api/Type/UserSignupError.hs
+++ b/example-api/Type/UserSignupError.hs
@@ -1,8 +1,6 @@
 {-# LANGUAGE
     DeriveDataTypeable
   , DeriveGeneric
-  , TemplateHaskell
-  , TypeFamilies
   #-}
 module Type.UserSignupError where
 
@@ -10,16 +8,12 @@
 import Data.JSON.Schema
 import Data.Typeable
 import GHC.Generics
-import Generics.Regular
-import Generics.Regular.XmlPickler
+import Generics.XmlPickler
 import Rest.Error
 import Text.XML.HXT.Arrow.Pickle
 
 data UserSignupError = InvalidPassword | InvalidUserName
   deriving (Eq, Generic, Ord, Show, Typeable)
-
-deriveAll ''UserSignupError "PFUserSignupError"
-type instance PF UserSignupError = PFUserSignupError
 
 instance XmlPickler UserSignupError where xpickle = gxpickle
 instance JSONSchema UserSignupError where schema = gSchema
diff --git a/rest-example.cabal b/rest-example.cabal
--- a/rest-example.cabal
+++ b/rest-example.cabal
@@ -1,5 +1,5 @@
 name:                rest-example
-version:             0.2.0.1
+version:             0.2.0.2
 synopsis:            Example project for rest
 homepage:            http://www.github.com/silkapp/rest
 license:             BSD3
@@ -48,9 +48,8 @@
     , hxt == 9.3.*
     , json-schema >= 0.6 && < 0.8
     , mtl >= 2.0 && < 2.3
-    , regular == 0.3.*
-    , regular-xmlpickler == 0.2.*
-    , rest-core == 0.35.*
+    , generic-xmlpickler >= 0.1.0.1 && < 0.2
+    , rest-core == 0.36.*
     , safe >= 0.2 && < 0.4
     , transformers >= 0.2 && < 0.5
     , transformers-compat == 0.4.*
@@ -111,7 +110,7 @@
     build-depends:
         base >= 4.6 && < 4.9
       , mtl >= 2.0 && < 2.3
-      , rest-core == 0.35.*
+      , rest-core == 0.36.*
       , rest-example
       , rest-wai == 0.1.*
       , wai >= 2.1 && < 3.1
@@ -130,7 +129,7 @@
     build-depends:
         base >= 4.6 && < 4.9
       , mtl >= 2.0 && < 2.3
-      , rest-core == 0.35.*
+      , rest-core == 0.36.*
       , rest-example
       , rest-snap == 0.1.*
       , snap-core == 0.9.*
@@ -149,7 +148,7 @@
     build-depends:
         base >= 4.6 && < 4.9
       , mtl >= 2.0 && < 2.3
-      , rest-core == 0.35.*
+      , rest-core == 0.36.*
       , rest-example
       , rest-gen >= 0.14 && < 0.18
       , transformers-compat == 0.4.*
