diff --git a/pagerduty.cabal b/pagerduty.cabal
--- a/pagerduty.cabal
+++ b/pagerduty.cabal
@@ -1,5 +1,5 @@
 name:                  pagerduty
-version:               0.0.3.2
+version:               0.0.3.3
 synopsis:              Client library for PagerDuty Integration and REST APIs.
 homepage:              http://github.com/brendanhay/pagerduty
 license:               OtherLicense
@@ -71,8 +71,8 @@
       , Network.PagerDuty.Types
 
     build-depends:
-        aeson                 >= 0.8
-      , base                  >= 4.5      && < 5
+        aeson                 >= 0.8      && < 0.10
+      , base                  >= 4.7      && < 5
       , bifunctors            >= 4.1
       , bytestring            >= 0.9
       , bytestring-conversion >= 0.2.1
diff --git a/src/Network/PagerDuty/Internal/Options.hs b/src/Network/PagerDuty/Internal/Options.hs
--- a/src/Network/PagerDuty/Internal/Options.hs
+++ b/src/Network/PagerDuty/Internal/Options.hs
@@ -14,9 +14,9 @@
     , underscored
     ) where
 
-import Data.Aeson.Types
-import Data.Char
-import Data.List
+import           Data.Aeson.Types
+import           Data.Char
+import           Data.List
 
 dropped :: Int -> Options -> Options
 dropped n o = o
diff --git a/src/Network/PagerDuty/Internal/Query.hs b/src/Network/PagerDuty/Internal/Query.hs
--- a/src/Network/PagerDuty/Internal/Query.hs
+++ b/src/Network/PagerDuty/Internal/Query.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE ConstraintKinds     #-}
 {-# LANGUAGE DefaultSignatures   #-}
+{-# LANGUAGE FlexibleContexts    #-}
 {-# LANGUAGE GADTs               #-}
 {-# LANGUAGE OverloadedStrings   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -23,14 +24,14 @@
 
 import           Data.Aeson.Types
 import           Data.Bifunctor
-import           Data.ByteString            (ByteString)
-import qualified Data.ByteString.Char8      as BS
+import           Data.ByteString                    (ByteString)
+import qualified Data.ByteString.Char8              as BS
 import           Data.ByteString.Conversion
-import           Data.Function              (on)
-import           Data.List                  (groupBy)
-import           Data.Monoid                ((<>))
-import           Data.Text                  (Text)
-import qualified Data.Text.Encoding         as Text
+import           Data.Function                      (on)
+import           Data.List                          (groupBy)
+import           Data.Monoid                        ((<>))
+import           Data.Text                          (Text)
+import qualified Data.Text.Encoding                 as Text
 import           Generics.SOP
 import           Network.HTTP.Types
 import           Network.PagerDuty.Internal.Options
diff --git a/src/Network/PagerDuty/Internal/TH.hs b/src/Network/PagerDuty/Internal/TH.hs
--- a/src/Network/PagerDuty/Internal/TH.hs
+++ b/src/Network/PagerDuty/Internal/TH.hs
@@ -40,15 +40,15 @@
 
 import           Control.Applicative
 import           Control.Lens
-import qualified Data.Aeson.TH                as Aeson
+import qualified Data.Aeson.TH                      as Aeson
 import           Data.Aeson.Types
-import           Data.ByteString              (ByteString)
-import qualified Data.Text.Encoding           as Text
+import           Data.ByteString                    (ByteString)
+import qualified Data.Text.Encoding                 as Text
 import           Generics.SOP.TH
 import           Language.Haskell.TH
 import           Network.HTTP.Types.QueryLike
-import           Network.PagerDuty.Internal.Query
 import           Network.PagerDuty.Internal.Options
+import           Network.PagerDuty.Internal.Query
 
 jsonRequest :: Name -> Q [Dec]
 jsonRequest n = concat <$> sequence
@@ -61,7 +61,7 @@
 queryRequest n = concat <$> sequence
     [ deriveGeneric n
     , makeLenses n
-    , [d|instance ToJSON $(conT n) where toJSON = const (toJSON (object []))|]
+    , [d|instance ToJSON $(conT n) where toJSON = const emptyObject|]
     , [d|instance QueryLike $(conT n) where toQuery = gquery|]
     ]
 
diff --git a/src/Network/PagerDuty/Internal/Types.hs b/src/Network/PagerDuty/Internal/Types.hs
--- a/src/Network/PagerDuty/Internal/Types.hs
+++ b/src/Network/PagerDuty/Internal/Types.hs
@@ -27,7 +27,7 @@
 module Network.PagerDuty.Internal.Types where
 
 import           Control.Applicative
-import           Control.Lens                     hiding ((.=))
+import           Control.Lens                     hiding ((.=), Empty)
 import           Control.Monad.IO.Class
 import           Data.Aeson                       hiding (Error)
 import           Data.Aeson.Types                 (Parser)
@@ -43,7 +43,7 @@
 import           Data.Text                        (Text)
 import qualified Data.Text                        as Text
 import qualified Data.Text.Encoding               as Text
-import           Data.Time
+import           Data.Time (UTCTime, TimeZone, formatTime, utc, timeZoneName)
 import           GHC.TypeLits
 import           Network.HTTP.Client              (Manager)
 import           Network.HTTP.Types
@@ -133,8 +133,8 @@
     deriving (Eq, Show)
 
 data Auth (a :: Security) where
-    AuthBasic :: ByteString -> ByteString -> Auth Basic
-    AuthToken :: ByteString -> Auth Token
+    AuthBasic :: ByteString -> ByteString -> Auth 'Basic
+    AuthToken :: ByteString               -> Auth 'Token
 
 deriving instance Eq   (Auth a)
 deriving instance Show (Auth a)
diff --git a/src/Network/PagerDuty/REST/Alerts.hs b/src/Network/PagerDuty/REST/Alerts.hs
--- a/src/Network/PagerDuty/REST/Alerts.hs
+++ b/src/Network/PagerDuty/REST/Alerts.hs
@@ -43,12 +43,12 @@
     , alertAddress
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Data.Time
-import Network.PagerDuty.REST.Users (User)
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                     hiding (Empty)
+import           Data.Aeson.Lens
+import           Data.Time
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users     (User)
 
 alerts :: Path
 alerts = "alerts"
diff --git a/src/Network/PagerDuty/REST/EscalationPolicies.hs b/src/Network/PagerDuty/REST/EscalationPolicies.hs
--- a/src/Network/PagerDuty/REST/EscalationPolicies.hs
+++ b/src/Network/PagerDuty/REST/EscalationPolicies.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -60,15 +60,15 @@
     , pServices
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Data.Text                       (Text)
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Services (Service)
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                                              hiding (Empty)
+import           Data.Aeson.Lens
+import           Data.Text                                                 (Text)
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Services                           (Service)
 
-import Network.PagerDuty.REST.EscalationPolicies.EscalationRules
+import           Network.PagerDuty.REST.EscalationPolicies.EscalationRules
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs b/src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs
--- a/src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs
+++ b/src/Network/PagerDuty/REST/EscalationPolicies/EscalationRules.hs
@@ -1,7 +1,7 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE FlexibleInstances    #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -64,15 +64,15 @@
     , rTargets
     ) where
 
-import           Control.Applicative          ((<$>))
-import           Control.Lens                 hiding ((.=))
+import           Control.Applicative              ((<$>))
+import           Control.Lens                     hiding ((.=))
 import           Data.Aeson
-import qualified Data.HashMap.Strict          as Map
-import           Data.Text                    (Text)
+import qualified Data.HashMap.Strict              as Map
+import           Data.Text                        (Text)
 import           Network.HTTP.Types
-import           Network.PagerDuty.REST.Users
 import           Network.PagerDuty.Internal.TH
 import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/Incidents.hs b/src/Network/PagerDuty/REST/Incidents.hs
--- a/src/Network/PagerDuty/REST/Incidents.hs
+++ b/src/Network/PagerDuty/REST/Incidents.hs
@@ -130,9 +130,10 @@
     ) where
 
 import           Control.Applicative              hiding (empty)
-import           Control.Lens
+import           Control.Lens                     hiding (Empty)
 import           Data.Aeson
-import           Data.ByteString.Conversion       (ToByteString(..), toByteString')
+import           Data.ByteString.Conversion       (ToByteString (..),
+                                                   toByteString')
 import           Data.Default.Class
 import           Data.Maybe
 import           Data.Monoid                      hiding (All)
@@ -566,7 +567,7 @@
 
 -- | A version of 'updateIncidents' which uses HTTP Basic authentication and
 -- doesn't require a 'RequesterId'.
-updateIncidentsBasic :: Request UpdateIncidents Basic [UpdatedIncidents]
+updateIncidentsBasic :: Request UpdateIncidents 'Basic [UpdatedIncidents]
 updateIncidentsBasic =
     mk UpdateIncidents
         { _uiIncidents' = []
diff --git a/src/Network/PagerDuty/REST/Incidents/Notes.hs b/src/Network/PagerDuty/REST/Incidents/Notes.hs
--- a/src/Network/PagerDuty/REST/Incidents/Notes.hs
+++ b/src/Network/PagerDuty/REST/Incidents/Notes.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -36,14 +36,14 @@
     , nContent
     ) where
 
-import Control.Lens                 hiding ((.=))
-import Data.Aeson
-import Data.Text                    (Text)
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Users
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                     hiding ((.=))
+import           Data.Aeson
+import           Data.Text                        (Text)
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/LogEntries.hs b/src/Network/PagerDuty/REST/LogEntries.hs
--- a/src/Network/PagerDuty/REST/LogEntries.hs
+++ b/src/Network/PagerDuty/REST/LogEntries.hs
@@ -112,18 +112,18 @@
     ) where
 
 import           Control.Applicative
-import           Control.Lens
+import           Control.Lens                     hiding (Empty)
 import           Data.Aeson
 import           Data.Aeson.Lens
 import           Data.Default.Class
-import qualified Data.HashMap.Strict          as Map
-import           Data.Text                    (Text)
-import qualified Data.Text                    as Text
+import qualified Data.HashMap.Strict              as Map
+import           Data.Text                        (Text)
+import qualified Data.Text                        as Text
 import           Data.Time
 import           Network.HTTP.Types
-import           Network.PagerDuty.REST.Users (User)
 import           Network.PagerDuty.Internal.TH
 import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users     (User)
 
 logs :: Path
 logs = "log_entries"
diff --git a/src/Network/PagerDuty/REST/MaintenanceWindows.hs b/src/Network/PagerDuty/REST/MaintenanceWindows.hs
--- a/src/Network/PagerDuty/REST/MaintenanceWindows.hs
+++ b/src/Network/PagerDuty/REST/MaintenanceWindows.hs
@@ -74,14 +74,14 @@
     , mwServices
     ) where
 
-import Control.Lens
-import Data.Monoid
-import Data.Text                    (Text)
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Users (User)
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                     hiding (Empty)
+import           Data.Monoid
+import           Data.Text                        (Text)
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users     (User)
 
 windows :: Path
 windows = "maintenance_windows"
@@ -214,7 +214,7 @@
 createWindowBasic :: UTCTime     -- ^ 'cwStartTime'
                   -> UTCTime     -- ^ 'cwEndTime'
                   -> [ServiceId] -- ^ 'cwServiceIds'
-                  -> Request CreateWindow Basic MaintenanceWindow
+                  -> Request CreateWindow 'Basic MaintenanceWindow
 createWindowBasic s e xs =
     mk CreateWindow
         { _cwRequesterId'       = Nothing
diff --git a/src/Network/PagerDuty/REST/Reports.hs b/src/Network/PagerDuty/REST/Reports.hs
--- a/src/Network/PagerDuty/REST/Reports.hs
+++ b/src/Network/PagerDuty/REST/Reports.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -58,11 +58,11 @@
     , irNumberOfIncidents
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Data.Time
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                     hiding (Empty)
+import           Data.Aeson.Lens
+import           Data.Time
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/Schedules.hs b/src/Network/PagerDuty/REST/Schedules.hs
--- a/src/Network/PagerDuty/REST/Schedules.hs
+++ b/src/Network/PagerDuty/REST/Schedules.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -110,14 +110,14 @@
     , sFinalSchedule
     ) where
 
-import Control.Lens                 hiding ((.=))
-import Data.Aeson
-import Data.Text                    (Text)
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Users (User)
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                     hiding (Empty, (.=))
+import           Data.Aeson
+import           Data.Text                        (Text)
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users     (User)
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/Schedules/Overrides.hs b/src/Network/PagerDuty/REST/Schedules/Overrides.hs
--- a/src/Network/PagerDuty/REST/Schedules/Overrides.hs
+++ b/src/Network/PagerDuty/REST/Schedules/Overrides.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -50,12 +50,12 @@
     , oUser
     ) where
 
-import Control.Lens
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Users
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users
 
 overrides :: ScheduleId -> Path
 overrides i = "schedules" % i % "overrides"
diff --git a/src/Network/PagerDuty/REST/Services.hs b/src/Network/PagerDuty/REST/Services.hs
--- a/src/Network/PagerDuty/REST/Services.hs
+++ b/src/Network/PagerDuty/REST/Services.hs
@@ -1,8 +1,8 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -106,14 +106,14 @@
     , svcSeverityFilter
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Data.Text                                    (Text)
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Services.EmailFilters
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens                                 hiding (Empty)
+import           Data.Aeson.Lens
+import           Data.Text                                    (Text)
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Services.EmailFilters
 
 default (Path)
 
@@ -483,7 +483,7 @@
 
 -- | A version of 'enableService' which uses HTTP Basic authentication and
 -- doesn't require a 'RequesterId'.
-enableServiceBasic :: ServiceId -> Request Empty Basic Empty
+enableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
 enableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "enable"
 
 -- | Disable a service. Once a service is disabled, it will not be able to
@@ -498,7 +498,7 @@
 
 -- | A version of 'disableService' which uses HTTP Basic authentication and
 -- doesn't require a 'RequesterId'.
-disableServiceBasic :: ServiceId -> Request Empty Basic Empty
+disableServiceBasic :: ServiceId -> Request Empty 'Basic Empty
 disableServiceBasic i = empty & meth .~ PUT & path .~ services % i % "disable"
 
 -- | Regenerate a new service key for an existing service.
diff --git a/src/Network/PagerDuty/REST/Services/EmailFilters.hs b/src/Network/PagerDuty/REST/Services/EmailFilters.hs
--- a/src/Network/PagerDuty/REST/Services/EmailFilters.hs
+++ b/src/Network/PagerDuty/REST/Services/EmailFilters.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -39,15 +39,15 @@
     , efId
     ) where
 
-import Control.Applicative     hiding (empty)
-import Control.Lens            hiding ((.=))
-import Data.Aeson
-import Data.Default.Class
-import Data.Monoid
-import Data.Text               (Text)
-import Network.HTTP.Types
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Applicative              hiding (empty)
+import           Control.Lens                     hiding ((.=))
+import           Data.Aeson
+import           Data.Default.Class
+import           Data.Monoid
+import           Data.Text                        (Text)
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
 
 default (Path)
 
@@ -65,7 +65,7 @@
 -- FIXME: Tighten up this type! Make the regex required for match/no-match and
 -- encode the conditional invariants.
 data EmailFilterInfo = EmailFilterInfo
-    { _efSubjectMode'   :: Maybe MatchMode
+    { _efSubjectMode'    :: Maybe MatchMode
     , _efSubjectRegex'   :: Maybe Text
     , _efBodyMode'       :: Maybe MatchMode
     , _efBodyRegex'      :: Maybe Text
diff --git a/src/Network/PagerDuty/REST/Users.hs b/src/Network/PagerDuty/REST/Users.hs
--- a/src/Network/PagerDuty/REST/Users.hs
+++ b/src/Network/PagerDuty/REST/Users.hs
@@ -1,10 +1,11 @@
-{-# LANGUAGE DataKinds                  #-}
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
-{-# LANGUAGE TypeFamilies               #-}
+{-# LANGUAGE DataKinds            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
+{-# LANGUAGE TypeFamilies         #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
+{-# OPTIONS_GHC -ddump-splices #-}
 
 -- Module      : Network.PagerDuty.REST.Users
 -- Copyright   : (c) 2013-2015 Brendan Hay <brendan.g.hay@gmail.com>
@@ -81,16 +82,16 @@
     , uJobTitle
     ) where
 
-import Control.Applicative     hiding (empty)
-import Control.Lens            hiding ((.=))
-import Data.Aeson
-import Data.Default.Class
-import Data.Monoid
-import Data.Text               (Text)
-import Data.Time
-import Network.HTTP.Types
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Applicative              hiding (empty)
+import           Control.Lens                     hiding (Empty, (.=))
+import           Data.Aeson
+import           Data.Default.Class
+import           Data.Monoid
+import           Data.Text                        (Text)
+import           Data.Time
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
 
 default (Path)
 
@@ -315,7 +316,7 @@
 -- doesn't require a 'RequesterId'.
 createUserBasic :: Text    -- ^ 'cuName'
                 -> Address -- ^ 'cuEmail'
-                -> Request CreateUser Basic User
+                -> Request CreateUser 'Basic User
 createUserBasic n e =
     mk CreateUser
         { _cuName'     = n
diff --git a/src/Network/PagerDuty/REST/Users/ContactMethods.hs b/src/Network/PagerDuty/REST/Users/ContactMethods.hs
--- a/src/Network/PagerDuty/REST/Users/ContactMethods.hs
+++ b/src/Network/PagerDuty/REST/Users/ContactMethods.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -56,12 +56,12 @@
     , Contact
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Data.Text               (Text)
-import Network.HTTP.Types
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens
+import           Data.Aeson.Lens
+import           Data.Text                        (Text)
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/Users/NotificationRules.hs b/src/Network/PagerDuty/REST/Users/NotificationRules.hs
--- a/src/Network/PagerDuty/REST/Users/NotificationRules.hs
+++ b/src/Network/PagerDuty/REST/Users/NotificationRules.hs
@@ -1,6 +1,6 @@
-{-# LANGUAGE ExtendedDefaultRules       #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE TemplateHaskell            #-}
+{-# LANGUAGE ExtendedDefaultRules #-}
+{-# LANGUAGE OverloadedStrings    #-}
+{-# LANGUAGE TemplateHaskell      #-}
 
 {-# OPTIONS_GHC -fno-warn-type-defaults #-}
 
@@ -51,12 +51,12 @@
     , rContactMethod
     ) where
 
-import Control.Lens
-import Data.Aeson.Lens
-import Network.HTTP.Types
-import Network.PagerDuty.REST.Users.ContactMethods
-import Network.PagerDuty.Internal.TH
-import Network.PagerDuty.Internal.Types
+import           Control.Lens
+import           Data.Aeson.Lens
+import           Network.HTTP.Types
+import           Network.PagerDuty.Internal.TH
+import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Users.ContactMethods
 
 default (Path)
 
diff --git a/src/Network/PagerDuty/REST/Webhooks.hs b/src/Network/PagerDuty/REST/Webhooks.hs
--- a/src/Network/PagerDuty/REST/Webhooks.hs
+++ b/src/Network/PagerDuty/REST/Webhooks.hs
@@ -35,13 +35,14 @@
 import           Control.Applicative              hiding (empty)
 import           Control.Lens
 import           Data.Aeson
-import           Data.ByteString.Conversion       (ToByteString(..), toByteString')
+import           Data.ByteString.Conversion       (ToByteString (..),
+                                                   toByteString')
 import           Data.Text                        (Text)
 import qualified Data.Text.Encoding               as Text
 import           Data.Time
-import           Network.PagerDuty.REST.Incidents
 import           Network.PagerDuty.Internal.TH
 import           Network.PagerDuty.Internal.Types
+import           Network.PagerDuty.REST.Incidents
 
 data WebhookType
     = WTrigger
