[arch-commits] Commit in haskell-aws/repos (6 files)

Felix Yan felixonmars at archlinux.org
Wed Dec 21 06:25:01 UTC 2016


    Date: Wednesday, December 21, 2016 @ 06:25:01
  Author: felixonmars
Revision: 200631

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  haskell-aws/repos/community-staging-i686/
  haskell-aws/repos/community-staging-i686/PKGBUILD
    (from rev 200630, haskell-aws/trunk/PKGBUILD)
  haskell-aws/repos/community-staging-i686/http-conduit-2.2.patch
    (from rev 200630, haskell-aws/trunk/http-conduit-2.2.patch)
  haskell-aws/repos/community-staging-x86_64/
  haskell-aws/repos/community-staging-x86_64/PKGBUILD
    (from rev 200630, haskell-aws/trunk/PKGBUILD)
  haskell-aws/repos/community-staging-x86_64/http-conduit-2.2.patch
    (from rev 200630, haskell-aws/trunk/http-conduit-2.2.patch)

-------------------------------------------------+
 community-staging-i686/PKGBUILD                 |   59 
 community-staging-i686/http-conduit-2.2.patch   | 1914 ++++++++++++++++++++++
 community-staging-x86_64/PKGBUILD               |   59 
 community-staging-x86_64/http-conduit-2.2.patch | 1914 ++++++++++++++++++++++
 4 files changed, 3946 insertions(+)

Copied: haskell-aws/repos/community-staging-i686/PKGBUILD (from rev 200630, haskell-aws/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD	                        (rev 0)
+++ community-staging-i686/PKGBUILD	2016-12-21 06:25:01 UTC (rev 200631)
@@ -0,0 +1,59 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell at haskell.org>
+
+_hkgname=aws
+pkgname=haskell-aws
+pkgver=0.14.1
+pkgrel=12
+pkgdesc="Amazon Web Services (AWS) for Haskell"
+url="http://github.com/aristidb/aws"
+license=("custom:BSD3")
+arch=('i686' 'x86_64')
+depends=("ghc=8.0.1" "haskell-aeson" "haskell-attoparsec" "haskell-base16-bytestring"
+         "haskell-base64-bytestring" "haskell-blaze-builder" "haskell-byteable"
+         "haskell-case-insensitive" "haskell-cereal" "haskell-conduit"
+         "haskell-conduit-extra" "haskell-cryptohash" "haskell-data-default"
+         "haskell-http-conduit" "haskell-http-types" "haskell-lifted-base"
+         "haskell-monad-control" "haskell-mtl" "haskell-network" "haskell-old-locale"
+         "haskell-resourcet" "haskell-safe" "haskell-scientific" "haskell-tagged"
+         "haskell-text" "haskell-unordered-containers" "haskell-utf8-string"
+         "haskell-vector" "haskell-xml-conduit")
+source=("https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz"
+        http-conduit-2.2.patch)
+sha256sums=('6a2079853ddc781b46fe3ddce31e88c0b6b2441f458141bca3cd1c7216cbe579'
+            '51123da7d47793cbc8b45b1bc494b1f322b96f8f809b659fd229a7075f74160f')
+
+prepare() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    patch -p1 -i ../http-conduit-2.2.patch
+
+    sed -i 's/xml-conduit          >= 1.2     && <1.4/xml-conduit >= 1.2 \&\& <1.5/' aws.cabal
+}
+
+build() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    
+    runhaskell Setup configure -O --enable-library-profiling --enable-shared \
+        --prefix=/usr --docdir="/usr/share/doc/${pkgname}" \
+        --libsubdir=\$compiler/site-local/\$pkgid \
+            -f-examples
+    runhaskell Setup build
+    runhaskell Setup haddock --hoogle --html
+    runhaskell Setup register --gen-script
+    runhaskell Setup unregister --gen-script
+    sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
+    sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    
+    install -D -m744 register.sh   "${pkgdir}/usr/share/haskell/register/${pkgname}.sh"
+    install -D -m744 unregister.sh "${pkgdir}/usr/share/haskell/unregister/${pkgname}.sh"
+    install -d -m755 "${pkgdir}/usr/share/doc/ghc/html/libraries"
+    ln -s "/usr/share/doc/${pkgname}/html" "${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}"
+    runhaskell Setup copy --destdir="${pkgdir}"
+    install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+    rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE"
+}

Copied: haskell-aws/repos/community-staging-i686/http-conduit-2.2.patch (from rev 200630, haskell-aws/trunk/http-conduit-2.2.patch)
===================================================================
--- community-staging-i686/http-conduit-2.2.patch	                        (rev 0)
+++ community-staging-i686/http-conduit-2.2.patch	2016-12-21 06:25:01 UTC (rev 200631)
@@ -0,0 +1,1914 @@
+From 72091804304b2dbed7ecbae62eae765a431d235d Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:38:58 -0400
+Subject: [PATCH 1/8] Pass http-client Request to responseConsumer
+
+This is potentially needed for error handling as HttpException now
+includes it.
+---
+ Aws/Aws.hs                                              |  2 +-
+ Aws/Core.hs                                             |  9 +++++----
+ Aws/DynamoDb/Commands/DeleteItem.hs                     |  2 +-
+ Aws/DynamoDb/Commands/GetItem.hs                        |  2 +-
+ Aws/DynamoDb/Commands/PutItem.hs                        |  2 +-
+ Aws/DynamoDb/Commands/Query.hs                          |  3 ++-
+ Aws/DynamoDb/Commands/Scan.hs                           |  2 +-
+ Aws/DynamoDb/Commands/Table.hs                          | 12 ++++++------
+ Aws/DynamoDb/Commands/UpdateItem.hs                     |  2 +-
+ Aws/Iam/Commands/CreateAccessKey.hs                     |  2 +-
+ Aws/Iam/Commands/CreateUser.hs                          |  5 +++--
+ Aws/Iam/Commands/DeleteAccessKey.hs                     |  3 ++-
+ Aws/Iam/Commands/DeleteUser.hs                          |  3 ++-
+ Aws/Iam/Commands/DeleteUserPolicy.hs                    |  3 ++-
+ Aws/Iam/Commands/GetUser.hs                             |  4 ++--
+ Aws/Iam/Commands/GetUserPolicy.hs                       |  2 +-
+ Aws/Iam/Commands/ListAccessKeys.hs                      |  2 +-
+ Aws/Iam/Commands/ListMfaDevices.hs                      |  2 +-
+ Aws/Iam/Commands/ListUserPolicies.hs                    |  2 +-
+ Aws/Iam/Commands/ListUsers.hs                           |  2 +-
+ Aws/Iam/Commands/PutUserPolicy.hs                       |  2 +-
+ Aws/Iam/Commands/UpdateAccessKey.hs                     |  2 +-
+ Aws/Iam/Commands/UpdateUser.hs                          |  2 +-
+ Aws/S3/Commands/CopyObject.hs                           |  2 +-
+ Aws/S3/Commands/DeleteBucket.hs                         |  2 +-
+ Aws/S3/Commands/DeleteObject.hs                         |  3 ++-
+ Aws/S3/Commands/DeleteObjects.hs                        |  2 +-
+ Aws/S3/Commands/GetBucket.hs                            |  2 +-
+ Aws/S3/Commands/GetBucketLocation.hs                    |  2 +-
+ Aws/S3/Commands/GetObject.hs                            |  2 +-
+ Aws/S3/Commands/GetService.hs                           |  2 +-
+ Aws/S3/Commands/HeadObject.hs                           |  2 +-
+ Aws/S3/Commands/Multipart.hs                            |  8 ++++----
+ Aws/S3/Commands/PutBucket.hs                            |  2 +-
+ Aws/S3/Commands/PutObject.hs                            |  2 +-
+ Aws/Ses/Commands/DeleteIdentity.hs                      |  3 ++-
+ Aws/Ses/Commands/GetIdentityDkimAttributes.hs           |  2 +-
+ Aws/Ses/Commands/GetIdentityNotificationAttributes.hs   |  2 +-
+ Aws/Ses/Commands/GetIdentityVerificationAttributes.hs   |  2 +-
+ Aws/Ses/Commands/ListIdentities.hs                      |  2 +-
+ Aws/Ses/Commands/SendRawEmail.hs                        |  2 +-
+ Aws/Ses/Commands/SetIdentityDkimEnabled.hs              |  3 ++-
+ .../Commands/SetIdentityFeedbackForwardingEnabled.hs    |  3 ++-
+ Aws/Ses/Commands/SetIdentityNotificationTopic.hs        |  3 ++-
+ Aws/Ses/Commands/VerifyDomainDkim.hs                    |  2 +-
+ Aws/Ses/Commands/VerifyDomainIdentity.hs                |  2 +-
+ Aws/Ses/Commands/VerifyEmailIdentity.hs                 |  3 ++-
+ Aws/SimpleDb/Commands/Attributes.hs                     | 17 +++++++++++------
+ Aws/SimpleDb/Commands/Domain.hs                         | 11 +++++++----
+ Aws/SimpleDb/Commands/Select.hs                         |  2 +-
+ Aws/Sqs/Commands/Message.hs                             |  8 ++++----
+ Aws/Sqs/Commands/Permission.hs                          |  6 +++---
+ Aws/Sqs/Commands/Queue.hs                               |  8 ++++----
+ Aws/Sqs/Commands/QueueAttributes.hs                     |  6 +++---
+ 54 files changed, 105 insertions(+), 85 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 0fb36da..5fad82e 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -247,7 +247,7 @@ unsafeAwsRef cfg info manager metadataRef request = do
+   logDebug $ "Response status: " ++ show (HTTP.responseStatus hresp)
+   forM_ (HTTP.responseHeaders hresp) $ \(hname,hvalue) -> liftIO $
+     logger cfg Debug $ T.decodeUtf8 $ "Response header '" `mappend` CI.original hname `mappend` "': '" `mappend` hvalue `mappend` "'"
+-  {-# SCC "unsafeAwsRef:responseConsumer" #-} responseConsumer request metadataRef hresp
++  {-# SCC "unsafeAwsRef:responseConsumer" #-} responseConsumer httpRequest request metadataRef hresp
+ 
+ -- | Run a URI-only AWS transaction. Returns a URI that can be sent anywhere. Does not work with all requests.
+ --
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 1a13c38..ec5d033 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -201,14 +201,15 @@ class Monoid (ResponseMetadata resp) => ResponseConsumer req resp where
+     -- metadata type for each AWS service.
+     type ResponseMetadata resp
+ 
+-    -- | Response parser. Takes the corresponding request, an 'IORef'
+-    -- for metadata, and HTTP response data.
+-    responseConsumer :: req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp
++    -- | Response parser. Takes the corresponding AWS request, the derived
++    -- @http-client@ request (for error reporting), an 'IORef' for metadata, and
++    -- HTTP response data.
++    responseConsumer :: HTTP.Request -> req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp
+ 
+ -- | Does not parse response. For debugging.
+ instance ResponseConsumer r (HTTP.Response L.ByteString) where
+     type ResponseMetadata (HTTP.Response L.ByteString) = ()
+-    responseConsumer _ _ resp = do
++    responseConsumer _ _ _ resp = do
+         bss <- HTTP.responseBody resp $$+- CL.consume
+         return resp
+             { HTTP.responseBody = L.fromChunks bss
+diff --git a/Aws/DynamoDb/Commands/DeleteItem.hs b/Aws/DynamoDb/Commands/DeleteItem.hs
+index f541602..7f47e3a 100644
+--- a/Aws/DynamoDb/Commands/DeleteItem.hs
++++ b/Aws/DynamoDb/Commands/DeleteItem.hs
+@@ -97,7 +97,7 @@ instance FromJSON DeleteItemResponse where
+ 
+ instance ResponseConsumer r DeleteItemResponse where
+     type ResponseMetadata DeleteItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse DeleteItemResponse where
+diff --git a/Aws/DynamoDb/Commands/GetItem.hs b/Aws/DynamoDb/Commands/GetItem.hs
+index 960b968..85bbf9f 100644
+--- a/Aws/DynamoDb/Commands/GetItem.hs
++++ b/Aws/DynamoDb/Commands/GetItem.hs
+@@ -84,7 +84,7 @@ instance FromJSON GetItemResponse where
+ 
+ instance ResponseConsumer r GetItemResponse where
+     type ResponseMetadata GetItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse GetItemResponse where
+diff --git a/Aws/DynamoDb/Commands/PutItem.hs b/Aws/DynamoDb/Commands/PutItem.hs
+index 2dfe55a..0ad51b1 100644
+--- a/Aws/DynamoDb/Commands/PutItem.hs
++++ b/Aws/DynamoDb/Commands/PutItem.hs
+@@ -98,7 +98,7 @@ instance FromJSON PutItemResponse where
+ 
+ instance ResponseConsumer r PutItemResponse where
+     type ResponseMetadata PutItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse PutItemResponse where
+diff --git a/Aws/DynamoDb/Commands/Query.hs b/Aws/DynamoDb/Commands/Query.hs
+index 90afdee..c01bbea 100644
+--- a/Aws/DynamoDb/Commands/Query.hs
++++ b/Aws/DynamoDb/Commands/Query.hs
+@@ -135,7 +135,8 @@ instance SignQuery Query where
+ 
+ instance ResponseConsumer r QueryResponse where
+     type ResponseMetadata QueryResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp
++        = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse QueryResponse where
+diff --git a/Aws/DynamoDb/Commands/Scan.hs b/Aws/DynamoDb/Commands/Scan.hs
+index 1135c61..f1e0397 100644
+--- a/Aws/DynamoDb/Commands/Scan.hs
++++ b/Aws/DynamoDb/Commands/Scan.hs
+@@ -114,7 +114,7 @@ instance SignQuery Scan where
+ 
+ instance ResponseConsumer r ScanResponse where
+     type ResponseMetadata ScanResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse ScanResponse where
+diff --git a/Aws/DynamoDb/Commands/Table.hs b/Aws/DynamoDb/Commands/Table.hs
+index d90c3a9..59b8b44 100644
+--- a/Aws/DynamoDb/Commands/Table.hs
++++ b/Aws/DynamoDb/Commands/Table.hs
+@@ -293,7 +293,7 @@ instance A.FromJSON TableDescription where
+ {- Can't derive these instances onto the return values
+ instance ResponseConsumer r TableDescription where
+     type ResponseMetadata TableDescription = DyMetadata
+-    responseConsumer _ _ = ddbResponseConsumer
++    responseConsumer _ _ _ = ddbResponseConsumer
+ instance AsMemoryResponse TableDescription where
+     type MemoryResponse TableDescription = TableDescription
+     loadToMemory = return
+@@ -351,7 +351,7 @@ newtype CreateTableResult = CreateTableResult { ctStatus :: TableDescription }
+ -- ResponseConsumer and AsMemoryResponse can't be derived
+ instance ResponseConsumer r CreateTableResult where
+     type ResponseMetadata CreateTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse CreateTableResult where
+     type MemoryResponse CreateTableResult = TableDescription
+     loadToMemory = return . ctStatus
+@@ -376,7 +376,7 @@ newtype DescribeTableResult = DescribeTableResult { dtStatus :: TableDescription
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r DescribeTableResult where
+     type ResponseMetadata DescribeTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse DescribeTableResult where
+     type MemoryResponse DescribeTableResult = TableDescription
+     loadToMemory = return . dtStatus
+@@ -408,7 +408,7 @@ newtype UpdateTableResult = UpdateTableResult { uStatus :: TableDescription }
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r UpdateTableResult where
+     type ResponseMetadata UpdateTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse UpdateTableResult where
+     type MemoryResponse UpdateTableResult = TableDescription
+     loadToMemory = return . uStatus
+@@ -433,7 +433,7 @@ newtype DeleteTableResult = DeleteTableResult { dStatus :: TableDescription }
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r DeleteTableResult where
+     type ResponseMetadata DeleteTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse DeleteTableResult where
+     type MemoryResponse DeleteTableResult = TableDescription
+     loadToMemory = return . dStatus
+@@ -459,7 +459,7 @@ instance A.FromJSON ListTablesResult where
+     parseJSON = A.genericParseJSON capitalizeOpt
+ instance ResponseConsumer r ListTablesResult where
+     type ResponseMetadata ListTablesResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse ListTablesResult where
+     type MemoryResponse ListTablesResult = [T.Text]
+     loadToMemory = return . tableNames
+diff --git a/Aws/DynamoDb/Commands/UpdateItem.hs b/Aws/DynamoDb/Commands/UpdateItem.hs
+index a2290a8..84b46a5 100644
+--- a/Aws/DynamoDb/Commands/UpdateItem.hs
++++ b/Aws/DynamoDb/Commands/UpdateItem.hs
+@@ -158,7 +158,7 @@ instance FromJSON UpdateItemResponse where
+ 
+ instance ResponseConsumer r UpdateItemResponse where
+     type ResponseMetadata UpdateItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse UpdateItemResponse where
+diff --git a/Aws/Iam/Commands/CreateAccessKey.hs b/Aws/Iam/Commands/CreateAccessKey.hs
+index a95a304..20cb071 100644
+--- a/Aws/Iam/Commands/CreateAccessKey.hs
++++ b/Aws/Iam/Commands/CreateAccessKey.hs
+@@ -58,7 +58,7 @@ data CreateAccessKeyResponse
+ 
+ instance ResponseConsumer CreateAccessKey CreateAccessKeyResponse where
+     type ResponseMetadata CreateAccessKeyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             let attr name = force ("Missing " ++ Text.unpack name) $
+                             cursor $// elContent name
+diff --git a/Aws/Iam/Commands/CreateUser.hs b/Aws/Iam/Commands/CreateUser.hs
+index 7022045..c3a0aa1 100644
+--- a/Aws/Iam/Commands/CreateUser.hs
++++ b/Aws/Iam/Commands/CreateUser.hs
+@@ -41,8 +41,9 @@ data CreateUserResponse = CreateUserResponse User
+ 
+ instance ResponseConsumer CreateUser CreateUserResponse where
+     type ResponseMetadata CreateUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer $
+-                         fmap CreateUserResponse . parseUser
++    responseConsumer _ _
++        = iamResponseConsumer $
++          fmap CreateUserResponse . parseUser
+ 
+ instance Transaction CreateUser CreateUserResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteAccessKey.hs b/Aws/Iam/Commands/DeleteAccessKey.hs
+index 627f6e3..b4e2084 100644
+--- a/Aws/Iam/Commands/DeleteAccessKey.hs
++++ b/Aws/Iam/Commands/DeleteAccessKey.hs
+@@ -39,7 +39,8 @@ data DeleteAccessKeyResponse = DeleteAccessKeyResponse
+ 
+ instance ResponseConsumer DeleteAccessKey DeleteAccessKeyResponse where
+     type ResponseMetadata DeleteAccessKeyResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteAccessKeyResponse)
++    responseConsumer _ _
++        = iamResponseConsumer (const $ return DeleteAccessKeyResponse)
+ 
+ instance Transaction DeleteAccessKey DeleteAccessKeyResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteUser.hs b/Aws/Iam/Commands/DeleteUser.hs
+index 491e3b1..afd2132 100644
+--- a/Aws/Iam/Commands/DeleteUser.hs
++++ b/Aws/Iam/Commands/DeleteUser.hs
+@@ -27,7 +27,8 @@ data DeleteUserResponse = DeleteUserResponse
+ 
+ instance ResponseConsumer DeleteUser DeleteUserResponse where
+     type ResponseMetadata DeleteUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteUserResponse)
++    responseConsumer _ _
++        = iamResponseConsumer (const $ return DeleteUserResponse)
+ 
+ instance Transaction DeleteUser DeleteUserResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteUserPolicy.hs b/Aws/Iam/Commands/DeleteUserPolicy.hs
+index 7a1c38f..9cf1279 100644
+--- a/Aws/Iam/Commands/DeleteUserPolicy.hs
++++ b/Aws/Iam/Commands/DeleteUserPolicy.hs
+@@ -37,7 +37,8 @@ data DeleteUserPolicyResponse = DeleteUserPolicyResponse
+ 
+ instance ResponseConsumer DeleteUserPolicy DeleteUserPolicyResponse where
+     type ResponseMetadata DeleteUserPolicyResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteUserPolicyResponse)
++    responseConsumer _ _ =
++        iamResponseConsumer (const $ return DeleteUserPolicyResponse)
+ 
+ instance Transaction DeleteUserPolicy DeleteUserPolicyResponse
+ 
+diff --git a/Aws/Iam/Commands/GetUser.hs b/Aws/Iam/Commands/GetUser.hs
+index 171c34e..67c46b3 100644
+--- a/Aws/Iam/Commands/GetUser.hs
++++ b/Aws/Iam/Commands/GetUser.hs
+@@ -33,8 +33,8 @@ data GetUserResponse = GetUserResponse User
+ 
+ instance ResponseConsumer GetUser GetUserResponse where
+     type ResponseMetadata GetUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer $
+-                         fmap GetUserResponse . parseUser
++    responseConsumer _ _ = iamResponseConsumer $
++                           fmap GetUserResponse . parseUser
+ 
+ instance Transaction GetUser GetUserResponse
+ 
+diff --git a/Aws/Iam/Commands/GetUserPolicy.hs b/Aws/Iam/Commands/GetUserPolicy.hs
+index 9f43e25..e9e33d2 100644
+--- a/Aws/Iam/Commands/GetUserPolicy.hs
++++ b/Aws/Iam/Commands/GetUserPolicy.hs
+@@ -50,7 +50,7 @@ data GetUserPolicyResponse
+ 
+ instance ResponseConsumer GetUserPolicy GetUserPolicyResponse where
+     type ResponseMetadata GetUserPolicyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             let attr name = force ("Missing " ++ Text.unpack name) $
+                             cursor $// elContent name
+diff --git a/Aws/Iam/Commands/ListAccessKeys.hs b/Aws/Iam/Commands/ListAccessKeys.hs
+index 2d00f34..0e247ab 100644
+--- a/Aws/Iam/Commands/ListAccessKeys.hs
++++ b/Aws/Iam/Commands/ListAccessKeys.hs
+@@ -71,7 +71,7 @@ data ListAccessKeysResponse
+ 
+ instance ResponseConsumer ListAccessKeys ListAccessKeysResponse where
+     type ResponseMetadata ListAccessKeysResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (lakrIsTruncated, lakrMarker) <- markedIterResponse cursor
+             lakrAccessKeyMetadata <- sequence $
+diff --git a/Aws/Iam/Commands/ListMfaDevices.hs b/Aws/Iam/Commands/ListMfaDevices.hs
+index 3c8eef2..7bad6f2 100644
+--- a/Aws/Iam/Commands/ListMfaDevices.hs
++++ b/Aws/Iam/Commands/ListMfaDevices.hs
+@@ -60,7 +60,7 @@ data ListMfaDevicesResponse = ListMfaDevicesResponse
+ 
+ instance ResponseConsumer ListMfaDevices ListMfaDevicesResponse where
+   type ResponseMetadata ListMfaDevicesResponse = IamMetadata
+-  responseConsumer _req =
++  responseConsumer _ _req =
+     iamResponseConsumer $ \ cursor -> do
+       (lmfarIsTruncated, lmfarMarker) <- markedIterResponse cursor
+       lmfarMfaDevices <-
+diff --git a/Aws/Iam/Commands/ListUserPolicies.hs b/Aws/Iam/Commands/ListUserPolicies.hs
+index 25027cf..ee90483 100644
+--- a/Aws/Iam/Commands/ListUserPolicies.hs
++++ b/Aws/Iam/Commands/ListUserPolicies.hs
+@@ -52,7 +52,7 @@ data ListUserPoliciesResponse
+ 
+ instance ResponseConsumer ListUserPolicies ListUserPoliciesResponse where
+     type ResponseMetadata ListUserPoliciesResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (luprIsTruncated, luprMarker) <- markedIterResponse cursor
+             let luprPolicyNames = cursor $// laxElement "member" &/ content
+diff --git a/Aws/Iam/Commands/ListUsers.hs b/Aws/Iam/Commands/ListUsers.hs
+index 6ee5e7d..01eff2a 100644
+--- a/Aws/Iam/Commands/ListUsers.hs
++++ b/Aws/Iam/Commands/ListUsers.hs
+@@ -55,7 +55,7 @@ data ListUsersResponse
+ 
+ instance ResponseConsumer ListUsers ListUsersResponse where
+     type ResponseMetadata ListUsersResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (lurIsTruncated, lurMarker) <- markedIterResponse cursor
+             lurUsers <- sequence $
+diff --git a/Aws/Iam/Commands/PutUserPolicy.hs b/Aws/Iam/Commands/PutUserPolicy.hs
+index bd93db8..9392878 100644
+--- a/Aws/Iam/Commands/PutUserPolicy.hs
++++ b/Aws/Iam/Commands/PutUserPolicy.hs
+@@ -41,7 +41,7 @@ data PutUserPolicyResponse = PutUserPolicyResponse
+ 
+ instance ResponseConsumer PutUserPolicy PutUserPolicyResponse where
+     type ResponseMetadata PutUserPolicyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return PutUserPolicyResponse)
+ 
+ instance Transaction PutUserPolicy PutUserPolicyResponse
+diff --git a/Aws/Iam/Commands/UpdateAccessKey.hs b/Aws/Iam/Commands/UpdateAccessKey.hs
+index 2df59a8..ba54971 100644
+--- a/Aws/Iam/Commands/UpdateAccessKey.hs
++++ b/Aws/Iam/Commands/UpdateAccessKey.hs
+@@ -47,7 +47,7 @@ data UpdateAccessKeyResponse = UpdateAccessKeyResponse
+ 
+ instance ResponseConsumer UpdateAccessKey UpdateAccessKeyResponse where
+     type ResponseMetadata UpdateAccessKeyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return UpdateAccessKeyResponse)
+ 
+ instance Transaction UpdateAccessKey UpdateAccessKeyResponse
+diff --git a/Aws/Iam/Commands/UpdateUser.hs b/Aws/Iam/Commands/UpdateUser.hs
+index 84d84f7..84b27eb 100644
+--- a/Aws/Iam/Commands/UpdateUser.hs
++++ b/Aws/Iam/Commands/UpdateUser.hs
+@@ -42,7 +42,7 @@ data UpdateUserResponse = UpdateUserResponse
+ 
+ instance ResponseConsumer UpdateUser UpdateUserResponse where
+     type ResponseMetadata UpdateUserResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return UpdateUserResponse)
+ 
+ instance Transaction UpdateUser UpdateUserResponse
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index b23c8a3..a748186 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -94,7 +94,7 @@ instance SignQuery CopyObject where
+ 
+ instance ResponseConsumer CopyObject CopyObjectResponse where
+     type ResponseMetadata CopyObjectResponse = S3Metadata
+-    responseConsumer _ mref = flip s3ResponseConsumer mref $ \resp -> do
++    responseConsumer _ _ mref = flip s3ResponseConsumer mref $ \resp -> do
+         let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+         (lastMod, etag) <- xmlCursorConsumer parse mref resp
+         return $ CopyObjectResponse vid lastMod etag
+diff --git a/Aws/S3/Commands/DeleteBucket.hs b/Aws/S3/Commands/DeleteBucket.hs
+index ebecdb1..c96acaa 100644
+--- a/Aws/S3/Commands/DeleteBucket.hs
++++ b/Aws/S3/Commands/DeleteBucket.hs
+@@ -31,7 +31,7 @@ instance SignQuery DeleteBucket where
+ 
+ instance ResponseConsumer DeleteBucket DeleteBucketResponse where
+     type ResponseMetadata DeleteBucketResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return DeleteBucketResponse
++    responseConsumer _ _ = s3ResponseConsumer $ \_ -> return DeleteBucketResponse
+ 
+ instance Transaction DeleteBucket DeleteBucketResponse
+ 
+diff --git a/Aws/S3/Commands/DeleteObject.hs b/Aws/S3/Commands/DeleteObject.hs
+index 707f563..65b6122 100644
+--- a/Aws/S3/Commands/DeleteObject.hs
++++ b/Aws/S3/Commands/DeleteObject.hs
+@@ -33,7 +33,8 @@ instance SignQuery DeleteObject where
+ 
+ instance ResponseConsumer DeleteObject DeleteObjectResponse where
+     type ResponseMetadata DeleteObjectResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return DeleteObjectResponse
++    responseConsumer _ _
++        = s3ResponseConsumer $ \_ -> return DeleteObjectResponse
+ 
+ instance Transaction DeleteObject DeleteObjectResponse
+ 
+diff --git a/Aws/S3/Commands/DeleteObjects.hs b/Aws/S3/Commands/DeleteObjects.hs
+index 9ec3589..c74ac0e 100644
+--- a/Aws/S3/Commands/DeleteObjects.hs
++++ b/Aws/S3/Commands/DeleteObjects.hs
+@@ -103,7 +103,7 @@ instance SignQuery DeleteObjects where
+ instance ResponseConsumer DeleteObjects DeleteObjectsResponse where
+     type ResponseMetadata DeleteObjectsResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor = do
+                   dorDeleted <- sequence $ cursor $/ Cu.laxElement "Deleted" &| parseDeleted
+                   dorErrors  <- sequence $ cursor $/ Cu.laxElement "Error" &| parseErrors
+diff --git a/Aws/S3/Commands/GetBucket.hs b/Aws/S3/Commands/GetBucket.hs
+index d978993..0d24879 100644
+--- a/Aws/S3/Commands/GetBucket.hs
++++ b/Aws/S3/Commands/GetBucket.hs
+@@ -72,7 +72,7 @@ instance SignQuery GetBucket where
+ instance ResponseConsumer r GetBucketResponse where
+     type ResponseMetadata GetBucketResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do name <- force "Missing Name" $ cursor $/ elContent "Name"
+                        let delimiter = listToMaybe $ cursor $/ elContent "Delimiter"
+diff --git a/Aws/S3/Commands/GetBucketLocation.hs b/Aws/S3/Commands/GetBucketLocation.hs
+index f729f04..b19e17f 100644
+--- a/Aws/S3/Commands/GetBucketLocation.hs
++++ b/Aws/S3/Commands/GetBucketLocation.hs
+@@ -44,7 +44,7 @@ instance SignQuery GetBucketLocation where
+ instance ResponseConsumer r GetBucketLocationResponse where
+   type ResponseMetadata GetBucketLocationResponse = S3Metadata
+ 
+-  responseConsumer _ = s3XmlResponseConsumer parse
++  responseConsumer _ _ = s3XmlResponseConsumer parse
+     where parse cursor = do
+             locationConstraint <- force "Missing Location" $ cursor $.// elContent "LocationConstraint"
+             return GetBucketLocationResponse { gblrLocationConstraint = normaliseLocation locationConstraint }
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 773256b..5a60611 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -79,7 +79,7 @@ instance SignQuery GetObject where
+ 
+ instance ResponseConsumer GetObject GetObjectResponse where
+     type ResponseMetadata GetObjectResponse = S3Metadata
+-    responseConsumer GetObject{..} metadata resp
++    responseConsumer _ GetObject{..} metadata resp
+         | status == HTTP.status200 = do
+             rsp <- s3BinaryResponseConsumer return metadata resp
+             om <- parseObjectMetadata (HTTP.responseHeaders resp)
+diff --git a/Aws/S3/Commands/GetService.hs b/Aws/S3/Commands/GetService.hs
+index d453517..a2a7ecc 100644
+--- a/Aws/S3/Commands/GetService.hs
++++ b/Aws/S3/Commands/GetService.hs
+@@ -25,7 +25,7 @@ data GetServiceResponse
+ instance ResponseConsumer r GetServiceResponse where
+     type ResponseMetadata GetServiceResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where
+           parse el = do
+             owner <- forceM "Missing Owner" $ el $/ Cu.laxElement "Owner" &| parseUserInfo
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index d58baf4..dbc9cc0 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -60,7 +60,7 @@ instance SignQuery HeadObject where
+ 
+ instance ResponseConsumer HeadObject HeadObjectResponse where
+     type ResponseMetadata HeadObjectResponse = S3Metadata
+-    responseConsumer HeadObject{..} _ resp
++    responseConsumer _ HeadObject{..} _ resp
+         | status == HTTP.status200 = HeadObjectResponse . Just <$> parseObjectMetadata headers
+         | status == HTTP.status404 = return $ HeadObjectResponse Nothing
+         | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
+diff --git a/Aws/S3/Commands/Multipart.hs b/Aws/S3/Commands/Multipart.hs
+index 176ffbd..f70524c 100644
+--- a/Aws/S3/Commands/Multipart.hs
++++ b/Aws/S3/Commands/Multipart.hs
+@@ -99,7 +99,7 @@ instance SignQuery InitiateMultipartUpload where
+ instance ResponseConsumer r InitiateMultipartUploadResponse where
+     type ResponseMetadata InitiateMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do bucket <- force "Missing Bucket Name" $ cursor $/ elContent "Bucket"
+                        key <- force "Missing Key" $ cursor $/ elContent "Key"
+@@ -172,7 +172,7 @@ instance SignQuery UploadPart where
+ 
+ instance ResponseConsumer UploadPart UploadPartResponse where
+     type ResponseMetadata UploadPartResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \resp -> do
++    responseConsumer _ _ = s3ResponseConsumer $ \resp -> do
+       let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+       let etag = fromMaybe "" $ T.decodeUtf8 `fmap` lookup "ETag" (HTTP.responseHeaders resp)
+       return $ UploadPartResponse vid etag
+@@ -259,7 +259,7 @@ instance SignQuery CompleteMultipartUpload where
+ instance ResponseConsumer r CompleteMultipartUploadResponse where
+     type ResponseMetadata CompleteMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do location <- force "Missing Location" $ cursor $/ elContent "Location"
+                        bucket <- force "Missing Bucket Name" $ cursor $/ elContent "Bucket"
+@@ -318,7 +318,7 @@ instance SignQuery AbortMultipartUpload where
+ instance ResponseConsumer r AbortMultipartUploadResponse where
+     type ResponseMetadata AbortMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse _cursor
+                   = return AbortMultipartUploadResponse {}
+ 
+diff --git a/Aws/S3/Commands/PutBucket.hs b/Aws/S3/Commands/PutBucket.hs
+index 84cca90..83d2c36 100644
+--- a/Aws/S3/Commands/PutBucket.hs
++++ b/Aws/S3/Commands/PutBucket.hs
+@@ -74,7 +74,7 @@ instance SignQuery PutBucket where
+ instance ResponseConsumer r PutBucketResponse where
+     type ResponseMetadata PutBucketResponse = S3Metadata
+ 
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return PutBucketResponse
++    responseConsumer _ _ = s3ResponseConsumer $ \_ -> return PutBucketResponse
+ 
+ instance Transaction PutBucket PutBucketResponse
+ 
+diff --git a/Aws/S3/Commands/PutObject.hs b/Aws/S3/Commands/PutObject.hs
+index eac0879..9f67cd5 100644
+--- a/Aws/S3/Commands/PutObject.hs
++++ b/Aws/S3/Commands/PutObject.hs
+@@ -83,7 +83,7 @@ instance SignQuery PutObject where
+ 
+ instance ResponseConsumer PutObject PutObjectResponse where
+     type ResponseMetadata PutObjectResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \resp -> do
++    responseConsumer _ _ = s3ResponseConsumer $ \resp -> do
+       let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+       return $ PutObjectResponse vid
+ 
+diff --git a/Aws/Ses/Commands/DeleteIdentity.hs b/Aws/Ses/Commands/DeleteIdentity.hs
+index d4ac908..bbeb463 100644
+--- a/Aws/Ses/Commands/DeleteIdentity.hs
++++ b/Aws/Ses/Commands/DeleteIdentity.hs
+@@ -29,7 +29,8 @@ data DeleteIdentityResponse = DeleteIdentityResponse
+ 
+ instance ResponseConsumer DeleteIdentity DeleteIdentityResponse where
+     type ResponseMetadata DeleteIdentityResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return DeleteIdentityResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return DeleteIdentityResponse
+ 
+ 
+ instance Transaction DeleteIdentity DeleteIdentityResponse where
+diff --git a/Aws/Ses/Commands/GetIdentityDkimAttributes.hs b/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
+index 5bf18ca..aa5824b 100644
+--- a/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
+@@ -44,7 +44,7 @@ data GetIdentityDkimAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityDkimAttributes GetIdentityDkimAttributesResponse where
+     type ResponseMetadata GetIdentityDkimAttributesResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \cursor -> do
++    responseConsumer _ _ = sesResponseConsumer $ \cursor -> do
+         let buildAttr e = do
+               idIdentity <- force "Missing Key" $ e $/ elContent "key"
+               enabled <- force "Missing DkimEnabled" $ e $// elContent "DkimEnabled"
+diff --git a/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs b/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
+index ddd2122..55e2875 100644
+--- a/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
+@@ -43,7 +43,7 @@ data GetIdentityNotificationAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse where
+     type ResponseMetadata GetIdentityNotificationAttributesResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \cursor -> do
++    responseConsumer _ _ = sesResponseConsumer $ \cursor -> do
+         let buildAttr e = do
+               inIdentity <- force "Missing Key" $ e $/ elContent "key"
+               fwdText <- force "Missing ForwardingEnabled" $ e $// elContent "ForwardingEnabled"
+diff --git a/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs b/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
+index 667e1e8..d9c99a2 100644
+--- a/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
+@@ -45,7 +45,7 @@ data GetIdentityVerificationAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse where
+     type ResponseMetadata GetIdentityVerificationAttributesResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+          let buildAttr e = do
+                ivIdentity <- force "Missing Key" $ e $/ elContent "key"
+diff --git a/Aws/Ses/Commands/ListIdentities.hs b/Aws/Ses/Commands/ListIdentities.hs
+index 6712225..1a6f183 100644
+--- a/Aws/Ses/Commands/ListIdentities.hs
++++ b/Aws/Ses/Commands/ListIdentities.hs
+@@ -50,7 +50,7 @@ data ListIdentitiesResponse = ListIdentitiesResponse [Text]
+ 
+ instance ResponseConsumer ListIdentities ListIdentitiesResponse where
+     type ResponseMetadata ListIdentitiesResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+          let ids = cursor $// laxElement "Identities" &/ elContent "member"
+          return $ ListIdentitiesResponse ids
+diff --git a/Aws/Ses/Commands/SendRawEmail.hs b/Aws/Ses/Commands/SendRawEmail.hs
+index e7350d1..284aac6 100644
+--- a/Aws/Ses/Commands/SendRawEmail.hs
++++ b/Aws/Ses/Commands/SendRawEmail.hs
+@@ -45,7 +45,7 @@ data SendRawEmailResponse =
+ 
+ instance ResponseConsumer SendRawEmail SendRawEmailResponse where
+     type ResponseMetadata SendRawEmailResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         messageId <- force "MessageId not found" $ cursor $// elContent "MessageId"
+         return (SendRawEmailResponse messageId)
+diff --git a/Aws/Ses/Commands/SetIdentityDkimEnabled.hs b/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
+index 537b7a4..1e43c43 100644
+--- a/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
++++ b/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
+@@ -32,7 +32,8 @@ data SetIdentityDkimEnabledResponse = SetIdentityDkimEnabledResponse
+ 
+ instance ResponseConsumer SetIdentityDkimEnabled SetIdentityDkimEnabledResponse where
+     type ResponseMetadata SetIdentityDkimEnabledResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityDkimEnabledResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityDkimEnabledResponse
+ 
+ instance Transaction SetIdentityDkimEnabled SetIdentityDkimEnabledResponse
+ 
+diff --git a/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs b/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
+index 93106aa..a681208 100644
+--- a/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
++++ b/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
+@@ -34,7 +34,8 @@ data SetIdentityFeedbackForwardingEnabledResponse = SetIdentityFeedbackForwardin
+ 
+ instance ResponseConsumer SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse where
+     type ResponseMetadata SetIdentityFeedbackForwardingEnabledResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityFeedbackForwardingEnabledResponse 
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityFeedbackForwardingEnabledResponse
+ 
+ instance Transaction SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse
+ 
+diff --git a/Aws/Ses/Commands/SetIdentityNotificationTopic.hs b/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
+index a740fe0..4095b10 100644
+--- a/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
++++ b/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
+@@ -48,7 +48,8 @@ data SetIdentityNotificationTopicResponse = SetIdentityNotificationTopicResponse
+ 
+ instance ResponseConsumer SetIdentityNotificationTopic SetIdentityNotificationTopicResponse where
+     type ResponseMetadata SetIdentityNotificationTopicResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityNotificationTopicResponse 
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityNotificationTopicResponse
+ 
+ instance Transaction SetIdentityNotificationTopic SetIdentityNotificationTopicResponse
+ 
+diff --git a/Aws/Ses/Commands/VerifyDomainDkim.hs b/Aws/Ses/Commands/VerifyDomainDkim.hs
+index acc811f..b09b5ef 100644
+--- a/Aws/Ses/Commands/VerifyDomainDkim.hs
++++ b/Aws/Ses/Commands/VerifyDomainDkim.hs
+@@ -28,7 +28,7 @@ data VerifyDomainDkimResponse = VerifyDomainDkimResponse [Text]
+ 
+ instance ResponseConsumer VerifyDomainDkim VerifyDomainDkimResponse where
+     type ResponseMetadata VerifyDomainDkimResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         let tokens = cursor $// laxElement "DkimTokens" &/ elContent "member"
+         return (VerifyDomainDkimResponse tokens)
+diff --git a/Aws/Ses/Commands/VerifyDomainIdentity.hs b/Aws/Ses/Commands/VerifyDomainIdentity.hs
+index 2efd728..4566c88 100644
+--- a/Aws/Ses/Commands/VerifyDomainIdentity.hs
++++ b/Aws/Ses/Commands/VerifyDomainIdentity.hs
+@@ -29,7 +29,7 @@ data VerifyDomainIdentityResponse = VerifyDomainIdentityResponse Text
+ 
+ instance ResponseConsumer VerifyDomainIdentity VerifyDomainIdentityResponse where
+     type ResponseMetadata VerifyDomainIdentityResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         token <- force "Verification token not found" $ cursor $// elContent "VerificationToken"
+         return (VerifyDomainIdentityResponse token)
+diff --git a/Aws/Ses/Commands/VerifyEmailIdentity.hs b/Aws/Ses/Commands/VerifyEmailIdentity.hs
+index 3a35cea..8114113 100644
+--- a/Aws/Ses/Commands/VerifyEmailIdentity.hs
++++ b/Aws/Ses/Commands/VerifyEmailIdentity.hs
+@@ -29,7 +29,8 @@ data VerifyEmailIdentityResponse = VerifyEmailIdentityResponse
+ 
+ instance ResponseConsumer VerifyEmailIdentity VerifyEmailIdentityResponse where
+     type ResponseMetadata VerifyEmailIdentityResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return VerifyEmailIdentityResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return VerifyEmailIdentityResponse
+ 
+ 
+ instance Transaction VerifyEmailIdentity VerifyEmailIdentityResponse where
+diff --git a/Aws/SimpleDb/Commands/Attributes.hs b/Aws/SimpleDb/Commands/Attributes.hs
+index dedd0d9..e929318 100644
+--- a/Aws/SimpleDb/Commands/Attributes.hs
++++ b/Aws/SimpleDb/Commands/Attributes.hs
+@@ -39,7 +39,8 @@ instance SignQuery GetAttributes where
+ 
+ instance ResponseConsumer r GetAttributesResponse where
+     type ResponseMetadata GetAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _
++        = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "GetAttributesResponse" cursor
+                 attributes <- sequence $ cursor $// Cu.laxElement "Attribute" &| readAttribute
+@@ -83,7 +84,8 @@ instance SignQuery PutAttributes where
+ 
+ instance ResponseConsumer r PutAttributesResponse where
+     type ResponseMetadata PutAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType PutAttributesResponse "PutAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType PutAttributesResponse "PutAttributesResponse"
+ 
+ instance Transaction PutAttributes PutAttributesResponse
+ 
+@@ -123,7 +125,8 @@ instance SignQuery DeleteAttributes where
+ 
+ instance ResponseConsumer r DeleteAttributesResponse where
+     type ResponseMetadata DeleteAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType DeleteAttributesResponse "DeleteAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType DeleteAttributesResponse "DeleteAttributesResponse"
+ 
+ instance Transaction DeleteAttributes DeleteAttributesResponse
+ 
+@@ -156,7 +159,8 @@ instance SignQuery BatchPutAttributes where
+ 
+ instance ResponseConsumer r BatchPutAttributesResponse where
+     type ResponseMetadata BatchPutAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType BatchPutAttributesResponse "BatchPutAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType BatchPutAttributesResponse "BatchPutAttributesResponse"
+ 
+ instance Transaction BatchPutAttributes BatchPutAttributesResponse
+ 
+@@ -189,10 +193,11 @@ instance SignQuery BatchDeleteAttributes where
+ 
+ instance ResponseConsumer r BatchDeleteAttributesResponse where
+     type ResponseMetadata BatchDeleteAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType BatchDeleteAttributesResponse "BatchDeleteAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType BatchDeleteAttributesResponse "BatchDeleteAttributesResponse"
+ 
+ instance Transaction BatchDeleteAttributes BatchDeleteAttributesResponse
+ 
+ instance AsMemoryResponse BatchDeleteAttributesResponse where
+     type MemoryResponse BatchDeleteAttributesResponse = BatchDeleteAttributesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/SimpleDb/Commands/Domain.hs b/Aws/SimpleDb/Commands/Domain.hs
+index 87f8dae..107eae9 100644
+--- a/Aws/SimpleDb/Commands/Domain.hs
++++ b/Aws/SimpleDb/Commands/Domain.hs
+@@ -30,7 +30,8 @@ instance SignQuery CreateDomain where
+ 
+ instance ResponseConsumer r CreateDomainResponse where
+     type ResponseMetadata CreateDomainResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType CreateDomainResponse "CreateDomainResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType CreateDomainResponse "CreateDomainResponse"
+ 
+ instance Transaction CreateDomain CreateDomainResponse
+ 
+@@ -58,7 +59,8 @@ instance SignQuery DeleteDomain where
+ 
+ instance ResponseConsumer r DeleteDomainResponse where
+     type ResponseMetadata DeleteDomainResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType DeleteDomainResponse "DeleteDomainResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType DeleteDomainResponse "DeleteDomainResponse"
+ 
+ instance Transaction DeleteDomain DeleteDomainResponse
+ 
+@@ -95,7 +97,8 @@ instance SignQuery DomainMetadata where
+ instance ResponseConsumer r DomainMetadataResponse where
+     type ResponseMetadata DomainMetadataResponse = SdbMetadata
+ 
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _
++        = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "DomainMetadataResponse" cursor
+                 dmrTimestamp <- forceM "Timestamp expected" $ cursor $// elCont "Timestamp" &| (fmap posixSecondsToUTCTime . readInt)
+@@ -141,7 +144,7 @@ instance SignQuery ListDomains where
+ 
+ instance ResponseConsumer r ListDomainsResponse where
+     type ResponseMetadata ListDomainsResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _ = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "ListDomainsResponse" cursor
+                 let names = cursor $// elContent "DomainName"
+diff --git a/Aws/SimpleDb/Commands/Select.hs b/Aws/SimpleDb/Commands/Select.hs
+index ea12f68..9dd7397 100644
+--- a/Aws/SimpleDb/Commands/Select.hs
++++ b/Aws/SimpleDb/Commands/Select.hs
+@@ -42,7 +42,7 @@ instance SignQuery Select where
+ 
+ instance ResponseConsumer r SelectResponse where
+     type ResponseMetadata SelectResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _ = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "SelectResponse" cursor
+                 items <- sequence $ cursor $// Cu.laxElement "Item" &| readItem
+diff --git a/Aws/Sqs/Commands/Message.hs b/Aws/Sqs/Commands/Message.hs
+index 9a11801..556c71e 100644
+--- a/Aws/Sqs/Commands/Message.hs
++++ b/Aws/Sqs/Commands/Message.hs
+@@ -216,7 +216,7 @@ data SendMessageResponse = SendMessageResponse
+ 
+ instance ResponseConsumer r SendMessageResponse where
+     type ResponseMetadata SendMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = SendMessageResponse
+             <$> force "Missing MD5 Signature"
+@@ -287,7 +287,7 @@ data DeleteMessageResponse = DeleteMessageResponse {}
+ 
+ instance ResponseConsumer r DeleteMessageResponse where
+     type ResponseMetadata DeleteMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = return DeleteMessageResponse {}
+ 
+@@ -559,7 +559,7 @@ formatUserMessageAttributes attrs = case attrs of
+ 
+ instance ResponseConsumer r ReceiveMessageResponse where
+     type ResponseMetadata ReceiveMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+             result <- force "Missing ReceiveMessageResult"
+@@ -660,7 +660,7 @@ data ChangeMessageVisibilityResponse = ChangeMessageVisibilityResponse {}
+ 
+ instance ResponseConsumer r ChangeMessageVisibilityResponse where
+     type ResponseMetadata ChangeMessageVisibilityResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = return ChangeMessageVisibilityResponse {}
+ 
+diff --git a/Aws/Sqs/Commands/Permission.hs b/Aws/Sqs/Commands/Permission.hs
+index f2e4a90..0bfdc54 100644
+--- a/Aws/Sqs/Commands/Permission.hs
++++ b/Aws/Sqs/Commands/Permission.hs
+@@ -25,7 +25,7 @@ formatPermissions perms =
+ 
+ instance ResponseConsumer r AddPermissionResponse where
+     type ResponseMetadata AddPermissionResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+        where
+          parse _ = do
+            return AddPermissionResponse {}
+@@ -55,7 +55,7 @@ data RemovePermissionResponse = RemovePermissionResponse
+ 
+ instance ResponseConsumer r RemovePermissionResponse where
+     type ResponseMetadata RemovePermissionResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where 
+         parse _ = do
+           return RemovePermissionResponse {}  
+@@ -72,4 +72,4 @@ instance Transaction RemovePermission RemovePermissionResponse
+ 
+ instance AsMemoryResponse RemovePermissionResponse where
+     type MemoryResponse RemovePermissionResponse = RemovePermissionResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/Sqs/Commands/Queue.hs b/Aws/Sqs/Commands/Queue.hs
+index d6c9ab7..ff61ae9 100644
+--- a/Aws/Sqs/Commands/Queue.hs
++++ b/Aws/Sqs/Commands/Queue.hs
+@@ -23,7 +23,7 @@ data CreateQueueResponse = CreateQueueResponse {
+ 
+ instance ResponseConsumer r CreateQueueResponse where
+     type ResponseMetadata CreateQueueResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+           url <- force "Missing Queue Url" $ el $// Cu.laxElement "QueueUrl" &/ Cu.content
+@@ -55,7 +55,7 @@ data DeleteQueueResponse = DeleteQueueResponse
+ 
+ instance ResponseConsumer r DeleteQueueResponse where
+     type ResponseMetadata DeleteQueueResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = do return DeleteQueueResponse{}
+           
+@@ -82,7 +82,7 @@ data ListQueuesResponse = ListQueuesResponse {
+ 
+ instance ResponseConsumer r ListQueuesResponse where
+     type ResponseMetadata ListQueuesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+             let queues = el $// Cu.laxElement "QueueUrl" &/ Cu.content
+@@ -102,4 +102,4 @@ instance Transaction ListQueues ListQueuesResponse
+ 
+ instance AsMemoryResponse ListQueuesResponse where
+     type MemoryResponse ListQueuesResponse = ListQueuesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/Sqs/Commands/QueueAttributes.hs b/Aws/Sqs/Commands/QueueAttributes.hs
+index aaa97cc..54f57fd 100644
+--- a/Aws/Sqs/Commands/QueueAttributes.hs
++++ b/Aws/Sqs/Commands/QueueAttributes.hs
+@@ -27,7 +27,7 @@ parseAttributes el = do
+ 
+ instance ResponseConsumer r GetQueueAttributesResponse where
+     type ResponseMetadata GetQueueAttributesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+           let attributes = concat $ el $// Cu.laxElement "Attribute" &| parseAttributes
+@@ -64,7 +64,7 @@ data SetQueueAttributesResponse = SetQueueAttributesResponse{
+ 
+ instance ResponseConsumer r SetQueueAttributesResponse where
+     type ResponseMetadata SetQueueAttributesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where 
+         parse _ = do
+           return SetQueueAttributesResponse {}
+@@ -82,4 +82,4 @@ instance Transaction SetQueueAttributes SetQueueAttributesResponse
+ 
+ instance AsMemoryResponse SetQueueAttributesResponse where
+     type MemoryResponse SetQueueAttributesResponse = SetQueueAttributesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+
+From 379b1d18e7340efacfb0a1753e0c25a7464ace2b Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:56:57 -0400
+Subject: [PATCH 2/8] Silence a number of trivial warnings
+
+These include,
+  * Redundant imports
+  * Defaulting warnings
+  * Duplicate exports
+---
+ Aws/Aws.hs                          | 1 +
+ Aws/Core.hs                         | 1 +
+ Aws/DynamoDb/Commands/DeleteItem.hs | 1 +
+ Aws/DynamoDb/Commands/GetItem.hs    | 1 +
+ Aws/DynamoDb/Commands/PutItem.hs    | 1 +
+ Aws/DynamoDb/Commands/Table.hs      | 1 +
+ Aws/DynamoDb/Commands/UpdateItem.hs | 2 +-
+ Aws/DynamoDb/Core.hs                | 3 ++-
+ Aws/Ec2/InstanceMetadata.hs         | 1 +
+ Aws/Iam/Commands/CreateAccessKey.hs | 1 +
+ Aws/Iam/Commands/CreateUser.hs      | 1 +
+ Aws/Iam/Commands/DeleteAccessKey.hs | 1 +
+ Aws/Iam/Commands/GetUser.hs         | 1 +
+ Aws/Iam/Commands/GetUserPolicy.hs   | 1 +
+ Aws/Iam/Commands/ListAccessKeys.hs  | 1 +
+ Aws/Iam/Commands/ListMfaDevices.hs  | 1 +
+ Aws/Iam/Commands/ListUsers.hs       | 1 +
+ Aws/Iam/Commands/UpdateAccessKey.hs | 1 +
+ Aws/Iam/Commands/UpdateUser.hs      | 1 +
+ Aws/Iam/Internal.hs                 | 1 +
+ Aws/S3/Commands/CopyObject.hs       | 1 +
+ Aws/S3/Commands/DeleteBucket.hs     | 1 -
+ Aws/S3/Commands/GetBucket.hs        | 1 +
+ Aws/S3/Commands/GetObject.hs        | 1 +
+ Aws/S3/Commands/HeadObject.hs       | 1 +
+ Aws/S3/Commands/Multipart.hs        | 1 +
+ Aws/S3/Commands/PutObject.hs        | 1 +
+ Aws/S3/Core.hs                      | 1 +
+ Aws/Ses/Core.hs                     | 1 +
+ Aws/SimpleDb/Commands/Attributes.hs | 1 +
+ Aws/SimpleDb/Commands/Domain.hs     | 1 +
+ Aws/SimpleDb/Commands/Select.hs     | 1 +
+ Aws/SimpleDb/Core.hs                | 1 +
+ Aws/Sqs/Commands/Message.hs         | 1 +
+ Aws/Sqs/Commands/Queue.hs           | 1 +
+ Aws/Sqs/Core.hs                     | 1 +
+ 36 files changed, 36 insertions(+), 3 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 5fad82e..2f749d7 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -52,6 +52,7 @@ import qualified Data.Text.Encoding           as T
+ import qualified Data.Text.IO                 as T
+ import qualified Network.HTTP.Conduit         as HTTP
+ import           System.IO                    (stderr)
++import           Prelude
+ 
+ -- | The severity of a log message, in rising order.
+ data LogLevel
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index ec5d033..89a78f7 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -138,6 +138,7 @@ import           System.Locale
+ import qualified Text.XML                 as XML
+ import qualified Text.XML.Cursor          as Cu
+ import           Text.XML.Cursor          hiding (force, forceM)
++import           Prelude
+ -------------------------------------------------------------------------------
+ 
+ -- | Types that can be logged (textually).
+diff --git a/Aws/DynamoDb/Commands/DeleteItem.hs b/Aws/DynamoDb/Commands/DeleteItem.hs
+index 7f47e3a..9a4a26d 100644
+--- a/Aws/DynamoDb/Commands/DeleteItem.hs
++++ b/Aws/DynamoDb/Commands/DeleteItem.hs
+@@ -26,6 +26,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/GetItem.hs b/Aws/DynamoDb/Commands/GetItem.hs
+index 85bbf9f..1859938 100644
+--- a/Aws/DynamoDb/Commands/GetItem.hs
++++ b/Aws/DynamoDb/Commands/GetItem.hs
+@@ -19,6 +19,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/PutItem.hs b/Aws/DynamoDb/Commands/PutItem.hs
+index 0ad51b1..28478d7 100644
+--- a/Aws/DynamoDb/Commands/PutItem.hs
++++ b/Aws/DynamoDb/Commands/PutItem.hs
+@@ -26,6 +26,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/Table.hs b/Aws/DynamoDb/Commands/Table.hs
+index 59b8b44..2c06c06 100644
+--- a/Aws/DynamoDb/Commands/Table.hs
++++ b/Aws/DynamoDb/Commands/Table.hs
+@@ -44,6 +44,7 @@ import           Data.Time.Clock.POSIX
+ import           Data.Typeable
+ import qualified Data.Vector           as V
+ import           GHC.Generics          (Generic)
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/UpdateItem.hs b/Aws/DynamoDb/Commands/UpdateItem.hs
+index 84b46a5..0d94a59 100644
+--- a/Aws/DynamoDb/Commands/UpdateItem.hs
++++ b/Aws/DynamoDb/Commands/UpdateItem.hs
+@@ -25,7 +25,6 @@ module Aws.DynamoDb.Commands.UpdateItem
+     , AttributeUpdate(..)
+     , au
+     , UpdateAction(..)
+-    , UpdateItem(..)
+     , UpdateItemResponse(..)
+     ) where
+ 
+@@ -34,6 +33,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Core.hs b/Aws/DynamoDb/Core.hs
+index 67fd84b..d9e7dda 100644
+--- a/Aws/DynamoDb/Core.hs
++++ b/Aws/DynamoDb/Core.hs
+@@ -399,7 +399,7 @@ instance DynVal UTCTime where
+ 
+ -------------------------------------------------------------------------------
+ pico :: Rational
+-pico = toRational $ 10 ^ (12 :: Integer)
++pico = toRational $ (10 :: Integer) ^ (12 :: Integer)
+ 
+ 
+ -------------------------------------------------------------------------------
+@@ -1142,6 +1142,7 @@ data QuerySelect
+ instance Default QuerySelect where def = SelectAll
+ 
+ -------------------------------------------------------------------------------
++querySelectJson :: KeyValue t => QuerySelect -> [t]
+ querySelectJson (SelectSpecific as) =
+     [ "Select" .= String "SPECIFIC_ATTRIBUTES"
+     , "AttributesToGet" .= as]
+diff --git a/Aws/Ec2/InstanceMetadata.hs b/Aws/Ec2/InstanceMetadata.hs
+index 0166809..b1547a1 100644
+--- a/Aws/Ec2/InstanceMetadata.hs
++++ b/Aws/Ec2/InstanceMetadata.hs
+@@ -8,6 +8,7 @@ import qualified Data.ByteString.Lazy.Char8 as B8
+ import           Data.ByteString.Lazy.UTF8 as BU
+ import           Data.Typeable
+ import qualified Network.HTTP.Conduit as HTTP
++import           Prelude
+ 
+ data InstanceMetadataException
+   = MetadataNotFound String
+diff --git a/Aws/Iam/Commands/CreateAccessKey.hs b/Aws/Iam/Commands/CreateAccessKey.hs
+index 20cb071..64b6e4a 100644
+--- a/Aws/Iam/Commands/CreateAccessKey.hs
++++ b/Aws/Iam/Commands/CreateAccessKey.hs
+@@ -16,6 +16,7 @@ import           Data.Text           (Text)
+ import qualified Data.Text           as Text
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (($//))
+ 
+ -- | Creates a new AWS secret access key and corresponding AWS access key ID
+diff --git a/Aws/Iam/Commands/CreateUser.hs b/Aws/Iam/Commands/CreateUser.hs
+index c3a0aa1..482eda7 100644
+--- a/Aws/Iam/Commands/CreateUser.hs
++++ b/Aws/Iam/Commands/CreateUser.hs
+@@ -14,6 +14,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Creates a new user.
+ --
+diff --git a/Aws/Iam/Commands/DeleteAccessKey.hs b/Aws/Iam/Commands/DeleteAccessKey.hs
+index b4e2084..605b167 100644
+--- a/Aws/Iam/Commands/DeleteAccessKey.hs
++++ b/Aws/Iam/Commands/DeleteAccessKey.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Deletes the access key associated with the specified user.
+ --
+diff --git a/Aws/Iam/Commands/GetUser.hs b/Aws/Iam/Commands/GetUser.hs
+index 67c46b3..aa8f5c3 100644
+--- a/Aws/Iam/Commands/GetUser.hs
++++ b/Aws/Iam/Commands/GetUser.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Retreives information about the given user.
+ --
+diff --git a/Aws/Iam/Commands/GetUserPolicy.hs b/Aws/Iam/Commands/GetUserPolicy.hs
+index e9e33d2..4e60f5a 100644
+--- a/Aws/Iam/Commands/GetUserPolicy.hs
++++ b/Aws/Iam/Commands/GetUserPolicy.hs
+@@ -16,6 +16,7 @@ import qualified Data.Text.Encoding  as Text
+ import           Data.Typeable
+ import qualified Network.HTTP.Types  as HTTP
+ import           Text.XML.Cursor     (($//))
++import           Prelude
+ 
+ -- | Retreives the specified policy document for the specified user.
+ --
+diff --git a/Aws/Iam/Commands/ListAccessKeys.hs b/Aws/Iam/Commands/ListAccessKeys.hs
+index 0e247ab..87e4920 100644
+--- a/Aws/Iam/Commands/ListAccessKeys.hs
++++ b/Aws/Iam/Commands/ListAccessKeys.hs
+@@ -14,6 +14,7 @@ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (laxElement, ($/), ($//), (&|))
+ 
+ -- | Returns the access keys associated with the specified user.
+diff --git a/Aws/Iam/Commands/ListMfaDevices.hs b/Aws/Iam/Commands/ListMfaDevices.hs
+index 7bad6f2..f03caae 100644
+--- a/Aws/Iam/Commands/ListMfaDevices.hs
++++ b/Aws/Iam/Commands/ListMfaDevices.hs
+@@ -12,6 +12,7 @@ import Aws.Iam.Internal
+ import Control.Applicative
+ import Data.Text (Text)
+ import Data.Typeable
++import Prelude
+ import Text.XML.Cursor (laxElement, ($//), (&|))
+ -- | Lists the MFA devices. If the request includes the user name,
+ -- then this action lists all the MFA devices associated with the
+diff --git a/Aws/Iam/Commands/ListUsers.hs b/Aws/Iam/Commands/ListUsers.hs
+index 01eff2a..461048b 100644
+--- a/Aws/Iam/Commands/ListUsers.hs
++++ b/Aws/Iam/Commands/ListUsers.hs
+@@ -14,6 +14,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (laxElement, ($//), (&|))
+ 
+ -- | Lists users that have the specified path prefix.
+diff --git a/Aws/Iam/Commands/UpdateAccessKey.hs b/Aws/Iam/Commands/UpdateAccessKey.hs
+index ba54971..0b079dd 100644
+--- a/Aws/Iam/Commands/UpdateAccessKey.hs
++++ b/Aws/Iam/Commands/UpdateAccessKey.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Changes the status of the specified access key.
+ --
+diff --git a/Aws/Iam/Commands/UpdateUser.hs b/Aws/Iam/Commands/UpdateUser.hs
+index 84b27eb..1b75497 100644
+--- a/Aws/Iam/Commands/UpdateUser.hs
++++ b/Aws/Iam/Commands/UpdateUser.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Updates the name and/or path of the specified user.
+ --
+diff --git a/Aws/Iam/Internal.hs b/Aws/Iam/Internal.hs
+index f6522bd..87fc6a5 100644
+--- a/Aws/Iam/Internal.hs
++++ b/Aws/Iam/Internal.hs
+@@ -20,6 +20,7 @@ import           Control.Monad.Trans.Resource (MonadThrow)
+ import           Data.ByteString     (ByteString)
+ import           Data.Maybe
+ import           Data.Monoid         ((<>))
++import           Prelude
+ import           Data.Text           (Text)
+ import qualified Data.Text           as Text
+ import qualified Data.Text.Encoding  as Text
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index a748186..a26fb41 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -20,6 +20,7 @@ import           Data.Time.Format
+ #else
+ import           System.Locale
+ #endif
++import           Prelude
+ 
+ data CopyMetadataDirective = CopyMetadata | ReplaceMetadata [(T.Text,T.Text)]
+   deriving (Show)
+diff --git a/Aws/S3/Commands/DeleteBucket.hs b/Aws/S3/Commands/DeleteBucket.hs
+index c96acaa..e35f3c3 100644
+--- a/Aws/S3/Commands/DeleteBucket.hs
++++ b/Aws/S3/Commands/DeleteBucket.hs
+@@ -4,7 +4,6 @@ where
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Data.ByteString.Char8      ({- IsString -})
+-import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+ 
+ data DeleteBucket = DeleteBucket { dbBucket :: Bucket }
+diff --git a/Aws/S3/Commands/GetBucket.hs b/Aws/S3/Commands/GetBucket.hs
+index 0d24879..6581d05 100644
+--- a/Aws/S3/Commands/GetBucket.hs
++++ b/Aws/S3/Commands/GetBucket.hs
+@@ -11,6 +11,7 @@ import qualified Data.ByteString.Char8 as B8
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
+ import qualified Data.Traversable
++import           Prelude
+ import qualified Network.HTTP.Types    as HTTP
+ import qualified Text.XML.Cursor       as Cu
+ 
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 5a60611..62da4a6 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -13,6 +13,7 @@ import qualified Data.Conduit.List     as CL
+ import           Data.Maybe
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ 
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index dbc9cc0..f13c1d8 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -10,6 +10,7 @@ import qualified Data.ByteString.Char8 as B8
+ import           Data.Maybe
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ 
+diff --git a/Aws/S3/Commands/Multipart.hs b/Aws/S3/Commands/Multipart.hs
+index f70524c..6a45b67 100644
+--- a/Aws/S3/Commands/Multipart.hs
++++ b/Aws/S3/Commands/Multipart.hs
+@@ -22,6 +22,7 @@ import qualified Data.Text.Encoding    as T
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ import qualified Text.XML              as XML
++import           Prelude
+ 
+ {-
+ Aws supports following 6 api for Multipart-Upload.
+diff --git a/Aws/S3/Commands/PutObject.hs b/Aws/S3/Commands/PutObject.hs
+index 9f67cd5..d4513c0 100644
+--- a/Aws/S3/Commands/PutObject.hs
++++ b/Aws/S3/Commands/PutObject.hs
+@@ -13,6 +13,7 @@ import qualified Data.ByteString.Char8 as B
+ import qualified Data.CaseInsensitive  as CI
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ 
+ data PutObject = PutObject {
+diff --git a/Aws/S3/Core.hs b/Aws/S3/Core.hs
+index 40af484..6c20e35 100644
+--- a/Aws/S3/Core.hs
++++ b/Aws/S3/Core.hs
+@@ -38,6 +38,7 @@ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import qualified Text.XML                       as XML
+ import qualified Text.XML.Cursor                as Cu
++import           Prelude
+ 
+ data S3Authorization
+     = S3AuthorizationHeader
+diff --git a/Aws/Ses/Core.hs b/Aws/Ses/Core.hs
+index ed474b2..aa68f1b 100644
+--- a/Aws/Ses/Core.hs
++++ b/Aws/Ses/Core.hs
+@@ -36,6 +36,7 @@ import           Data.Monoid
+ import           Data.Text                      (Text)
+ import qualified Data.Text.Encoding             as TE
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import           Text.XML.Cursor                (($/), ($//))
+diff --git a/Aws/SimpleDb/Commands/Attributes.hs b/Aws/SimpleDb/Commands/Attributes.hs
+index e929318..179eb2f 100644
+--- a/Aws/SimpleDb/Commands/Attributes.hs
++++ b/Aws/SimpleDb/Commands/Attributes.hs
+@@ -5,6 +5,7 @@ import           Aws.SimpleDb.Core
+ import           Control.Applicative
+ import           Control.Monad
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor            (($//), (&|))
+ import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+diff --git a/Aws/SimpleDb/Commands/Domain.hs b/Aws/SimpleDb/Commands/Domain.hs
+index 107eae9..e9eb47c 100644
+--- a/Aws/SimpleDb/Commands/Domain.hs
++++ b/Aws/SimpleDb/Commands/Domain.hs
+@@ -6,6 +6,7 @@ import           Control.Applicative
+ import           Data.Maybe
+ import           Data.Time
+ import           Data.Time.Clock.POSIX
++import           Prelude
+ import           Text.XML.Cursor       (($//), (&|))
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
+diff --git a/Aws/SimpleDb/Commands/Select.hs b/Aws/SimpleDb/Commands/Select.hs
+index 9dd7397..804388b 100644
+--- a/Aws/SimpleDb/Commands/Select.hs
++++ b/Aws/SimpleDb/Commands/Select.hs
+@@ -6,6 +6,7 @@ import           Aws.SimpleDb.Core
+ import           Control.Applicative
+ import           Control.Monad
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor            (($//), (&|))
+ import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+diff --git a/Aws/SimpleDb/Core.hs b/Aws/SimpleDb/Core.hs
+index 7a9c483..6486fe3 100644
+--- a/Aws/SimpleDb/Core.hs
++++ b/Aws/SimpleDb/Core.hs
+@@ -15,6 +15,7 @@ import           Data.Monoid
+ import qualified Data.Text                      as T
+ import qualified Data.Text.Encoding             as T
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import           Text.XML.Cursor                (($|), ($/), ($//), (&|))
+diff --git a/Aws/Sqs/Commands/Message.hs b/Aws/Sqs/Commands/Message.hs
+index 556c71e..af75fbf 100644
+--- a/Aws/Sqs/Commands/Message.hs
++++ b/Aws/Sqs/Commands/Message.hs
+@@ -39,6 +39,7 @@ import Data.Scientific
+ import qualified Network.HTTP.Types as HTTP
+ import Text.Read (readEither)
+ import qualified Text.XML.Cursor as Cu
++import Prelude
+ 
+ -- -------------------------------------------------------------------------- --
+ -- User Message Attributes
+diff --git a/Aws/Sqs/Commands/Queue.hs b/Aws/Sqs/Commands/Queue.hs
+index ff61ae9..71be227 100644
+--- a/Aws/Sqs/Commands/Queue.hs
++++ b/Aws/Sqs/Commands/Queue.hs
+@@ -5,6 +5,7 @@ import           Aws.Core
+ import           Aws.Sqs.Core
+ import           Control.Applicative
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor       (($//), (&/))
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as TE
+diff --git a/Aws/Sqs/Core.hs b/Aws/Sqs/Core.hs
+index dde576f..7d2aee0 100644
+--- a/Aws/Sqs/Core.hs
++++ b/Aws/Sqs/Core.hs
+@@ -22,6 +22,7 @@ import qualified Data.Text.Encoding             as T
+ import qualified Data.Text.Encoding             as TE
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ #if MIN_VERSION_time(1,5,0)
+
+From 64fa3fd3dd48a02b75328c6d886d00b07bab7ffc Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:59:32 -0400
+Subject: [PATCH 3/8] Use HTTP.newManager instead of deprecated
+ HTTP.withManager
+
+---
+ Aws/Aws.hs  | 6 +++---
+ Aws/Core.hs | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 2f749d7..cc4a440 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -190,9 +190,9 @@ simpleAws :: (Transaction r a, AsMemoryResponse a, MonadIO io)
+             -> ServiceConfiguration r NormalQuery
+             -> r
+             -> io (MemoryResponse a)
+-simpleAws cfg scfg request
+-  = liftIO $ HTTP.withManager $ \manager ->
+-      loadToMemory =<< readResponseIO =<< aws cfg scfg manager request
++simpleAws cfg scfg request = liftIO $ runResourceT $ do
++    manager <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings
++    loadToMemory =<< readResponseIO =<< aws cfg scfg manager request
+ 
+ -- | Run an AWS transaction, without enforcing that response and request type form a valid transaction pair.
+ --
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 89a78f7..35a26c9 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -319,8 +319,8 @@ loadCredentialsFromEnv = liftIO $ do
+   Traversable.sequence $ makeCredentials' <$> keyID <*> secret
+ 
+ loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials)
+-loadCredentialsFromInstanceMetadata = liftIO $ HTTP.withManager $ \mgr ->
+-  do
++loadCredentialsFromInstanceMetadata = do
++    mgr <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings
+     -- check if the path is routable
+     avail <- liftIO $ hostAvailable "169.254.169.254"
+     if not avail
+
+From 6896a436d0cd61c54808f46046c2d77bfd98bf58 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:00:12 -0400
+Subject: [PATCH 4/8] Aws.DynamicDb.Core: Remove redundant Typeable constraint
+
+---
+ Aws/DynamoDb/Core.hs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Aws/DynamoDb/Core.hs b/Aws/DynamoDb/Core.hs
+index d9e7dda..a3698b2 100644
+--- a/Aws/DynamoDb/Core.hs
++++ b/Aws/DynamoDb/Core.hs
+@@ -1339,7 +1339,7 @@ getAttr k m = do
+ -- | Parse attribute if it's present in the 'Item'. Fail if attribute
+ -- is present but conversion fails.
+ getAttr'
+-    :: forall a. (Typeable a, DynVal a)
++    :: forall a. (DynVal a)
+     => T.Text
+     -- ^ Attribute name
+     -> Item
+
+From 73552eaa1aba1d629d942a452424ffc855780619 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:06:14 -0400
+Subject: [PATCH 5/8] Drop support for time < 1.4
+
+This allows us to easily silence a number of redundant import warnings
+and drop some CPP.
+---
+ Aws/Core.hs                   | 4 +---
+ Aws/Iam/Core.hs               | 4 +---
+ Aws/S3/Commands/CopyObject.hs | 4 +---
+ Aws/S3/Core.hs                | 4 +---
+ Aws/Sqs/Core.hs               | 4 +---
+ aws.cabal                     | 2 +-
+ 6 files changed, 6 insertions(+), 16 deletions(-)
+
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 35a26c9..b81820a 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -130,9 +130,7 @@ import qualified Network.HTTP.Types       as HTTP
+ import           System.Directory
+ import           System.Environment
+ import           System.FilePath          ((</>))
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import qualified Text.XML                 as XML
+diff --git a/Aws/Iam/Core.hs b/Aws/Iam/Core.hs
+index 0152799..ae9e523 100644
+--- a/Aws/Iam/Core.hs
++++ b/Aws/Iam/Core.hs
+@@ -35,9 +35,7 @@ import           Data.Time
+ import           Data.Typeable
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Text.XML.Cursor                (($//))
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index a26fb41..34206c4 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -15,9 +15,7 @@ import qualified Data.Text.Encoding as T
+ import           Data.Time
+ import qualified Network.HTTP.Conduit as HTTP
+ import           Text.XML.Cursor (($/), (&|))
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Prelude
+diff --git a/Aws/S3/Core.hs b/Aws/S3/Core.hs
+index 6c20e35..d55711e 100644
+--- a/Aws/S3/Core.hs
++++ b/Aws/S3/Core.hs
+@@ -18,9 +18,7 @@ import           Data.Monoid
+ import           Control.Applicative            ((<|>))
+ import           Data.Time
+ import           Data.Typeable
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Text.XML.Cursor                (($/), (&|))
+diff --git a/Aws/Sqs/Core.hs b/Aws/Sqs/Core.hs
+index 7d2aee0..700abf5 100644
+--- a/Aws/Sqs/Core.hs
++++ b/Aws/Sqs/Core.hs
+@@ -25,9 +25,7 @@ import           Data.Typeable
+ import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import qualified Text.XML                       as XML
+diff --git a/aws.cabal b/aws.cabal
+index a74d669..8cea405 100644
+--- a/aws.cabal
++++ b/aws.cabal
+@@ -139,7 +139,7 @@ Library
+                        scientific           >= 0.3,
+                        tagged               >= 0.7     && < 0.9,
+                        text                 >= 0.11,
+-                       time                 >= 1.1.4   && < 2.0,
++                       time                 >= 1.4.0   && < 1.7,
+                        transformers         >= 0.2.2   && < 0.6,
+                        unordered-containers >= 0.2,
+                        utf8-string          >= 0.3     && < 1.1,
+
+From b09069d269f6f8cbfb0564e4d6c8a128ce1c3a8e Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:25:11 -0400
+Subject: [PATCH 6/8] Add support for http-client-2.2
+
+---
+ Aws/Core.hs                   | 31 ++++++++++++++++++++++++++++---
+ Aws/S3/Commands/GetObject.hs  | 10 +++++-----
+ Aws/S3/Commands/HeadObject.hs |  6 ++----
+ aws.cabal                     |  2 +-
+ 4 files changed, 36 insertions(+), 13 deletions(-)
+
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index b81820a..45f277b 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -22,6 +22,7 @@ module Aws.Core
+ , HeaderException(..)
+ , FormException(..)
+ , NoCredentialsException(..)
++, throwStatusCodeException
+   -- ** Response deconstruction helpers
+ , readHex2
+   -- *** XML
+@@ -111,8 +112,10 @@ import qualified Data.ByteString.UTF8     as BU
+ import           Data.Char
+ import           Data.Conduit             (($$+-))
+ import qualified Data.Conduit             as C
++#if MIN_VERSION_http_conduit(2,2,0)
++import qualified Data.Conduit.Binary      as CB
++#endif
+ import qualified Data.Conduit.List        as CL
+-import           Data.Default             (def)
+ import           Data.IORef
+ import           Data.List
+ import qualified Data.Map                 as M
+@@ -462,7 +465,7 @@ queryToHttpRequest :: SignedQuery -> IO (HTTP.Request (C.ResourceT IO))
+ #endif
+ queryToHttpRequest SignedQuery{..} =  do
+     mauth <- maybe (return Nothing) (Just<$>) sqAuthorization
+-    return $ def {
++    return $ HTTP.defaultRequest {
+         HTTP.method = httpMethod sqMethod
+       , HTTP.secure = case sqProtocol of
+                         HTTP -> False
+@@ -494,7 +497,11 @@ queryToHttpRequest SignedQuery{..} =  do
+               _         -> HTTP.RequestBodyBuilder 0 mempty
+ 
+       , HTTP.decompress = HTTP.alwaysDecompress
+-      , HTTP.checkStatus = \_ _ _ -> Nothing
++#if MIN_VERSION_http_conduit(2,2,0)
++      , HTTP.checkResponse = \_ _ -> return ()
++#else
++      , HTTP.checkStatus = \_ _ _-> Nothing
++#endif
+ 
+       , HTTP.redirectCount = 10
+       }
+@@ -792,6 +799,24 @@ newtype NoCredentialsException = NoCredentialsException { noCredentialsErrorMess
+ 
+ instance E.Exception NoCredentialsException
+ 
++-- | A helper to throw an 'HTTP.StatusCodeException'.
++throwStatusCodeException :: HTTP.Request
++                         -> HTTP.Response (C.ResumableSource (ResourceT IO) ByteString)
++                         -> ResourceT IO a
++#if MIN_VERSION_http_conduit(2,2,0)
++throwStatusCodeException req resp = do
++    let resp' = fmap (const ()) resp
++    -- only take first 10kB of error response
++    body <- HTTP.responseBody resp C.$$+- CB.take (10*1024)
++    let sce = HTTP.StatusCodeException resp' (L.toStrict body)
++    throwM $ HTTP.HttpExceptionRequest req sce
++#else
++throwStatusCodeException _req resp = do
++    let cookies = HTTP.responseCookieJar resp
++        headers = HTTP.responseHeaders   resp
++        status  = HTTP.responseStatus    resp
++    throwM $ HTTP.StatusCodeException status headers cookies
++#endif
+ 
+ -- | A specific element (case-insensitive, ignoring namespace - sadly necessary), extracting only the textual contents.
+ elContent :: T.Text -> Cursor -> [T.Text]
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 62da4a6..fd8ba92 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -1,10 +1,12 @@
++{-# LANGUAGE CPP #-}
++
+ module Aws.S3.Commands.GetObject
+ where
+ 
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Control.Applicative
+-import           Control.Monad.Trans.Resource (ResourceT, throwM)
++import           Control.Monad.Trans.Resource (ResourceT)
+ import           Data.ByteString.Char8 ({- IsString -})
+ import qualified Data.ByteString.Char8 as B8
+ import qualified Data.ByteString.Lazy  as L
+@@ -80,16 +82,14 @@ instance SignQuery GetObject where
+ 
+ instance ResponseConsumer GetObject GetObjectResponse where
+     type ResponseMetadata GetObjectResponse = S3Metadata
+-    responseConsumer _ GetObject{..} metadata resp
++    responseConsumer httpReq GetObject{..} metadata resp
+         | status == HTTP.status200 = do
+             rsp <- s3BinaryResponseConsumer return metadata resp
+             om <- parseObjectMetadata (HTTP.responseHeaders resp)
+             return $ GetObjectResponse om rsp
+-        | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
++        | otherwise = throwStatusCodeException httpReq resp
+       where
+         status  = HTTP.responseStatus    resp
+-        headers = HTTP.responseHeaders   resp
+-        cookies = HTTP.responseCookieJar resp
+ 
+ instance Transaction GetObject GetObjectResponse
+ 
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index f13c1d8..09c44f8 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -4,7 +4,6 @@ where
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Control.Applicative
+-import           Control.Monad.Trans.Resource (throwM)
+ import           Data.ByteString.Char8 ({- IsString -})
+ import qualified Data.ByteString.Char8 as B8
+ import           Data.Maybe
+@@ -61,14 +60,13 @@ instance SignQuery HeadObject where
+ 
+ instance ResponseConsumer HeadObject HeadObjectResponse where
+     type ResponseMetadata HeadObjectResponse = S3Metadata
+-    responseConsumer _ HeadObject{..} _ resp
++    responseConsumer httpReq HeadObject{..} _ resp
+         | status == HTTP.status200 = HeadObjectResponse . Just <$> parseObjectMetadata headers
+         | status == HTTP.status404 = return $ HeadObjectResponse Nothing
+-        | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
++        | otherwise = throwStatusCodeException httpReq resp
+       where
+         status  = HTTP.responseStatus    resp
+         headers = HTTP.responseHeaders   resp
+-        cookies = HTTP.responseCookieJar resp
+ 
+ instance Transaction HeadObject HeadObjectResponse
+ 
+diff --git a/aws.cabal b/aws.cabal
+index 8cea405..1d8bb71 100644
+--- a/aws.cabal
++++ b/aws.cabal
+@@ -127,7 +127,7 @@ Library
+                        data-default         >= 0.5.3   && < 0.8,
+                        directory            >= 1.0     && < 1.3,
+                        filepath             >= 1.1     && < 1.5,
+-                       http-conduit         >= 2.1     && < 2.2,
++                       http-conduit         >= 2.1     && < 2.3,
+                        http-types           >= 0.7     && < 0.10,
+                        lifted-base          >= 0.1     && < 0.3,
+                        monad-control        >= 0.3,
+
+From d5b10b790ceea44c802498f9be653ba1dab8f6d1 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:26:08 -0400
+Subject: [PATCH 7/8] Ec2.InstanceMetadata: Use parseUrlThrow explicitly
+
+parseUrl is deprecated.
+---
+ Aws/Ec2/InstanceMetadata.hs | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Aws/Ec2/InstanceMetadata.hs b/Aws/Ec2/InstanceMetadata.hs
+index b1547a1..dcc254e 100644
+--- a/Aws/Ec2/InstanceMetadata.hs
++++ b/Aws/Ec2/InstanceMetadata.hs
+@@ -17,8 +17,9 @@ data InstanceMetadataException
+ instance Exception InstanceMetadataException
+ 
+ getInstanceMetadata :: HTTP.Manager -> String -> String -> IO L.ByteString
+-getInstanceMetadata mgr p x = do req <- HTTP.parseUrl ("http://169.254.169.254/" ++ p ++ '/' : x)
+-                                 HTTP.responseBody <$> HTTP.httpLbs req mgr
++getInstanceMetadata mgr p x = do
++    req <- HTTP.parseUrlThrow ("http://169.254.169.254/" ++ p ++ '/' : x)
++    HTTP.responseBody <$> HTTP.httpLbs req mgr
+ 
+ getInstanceMetadataListing :: HTTP.Manager -> String -> IO [String]
+ getInstanceMetadataListing mgr p = map BU.toString . B8.split '\n' <$> getInstanceMetadata mgr p ""
+
+From f18b362178ce2de383525af8af23da3cdc7ab466 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:31:51 -0400
+Subject: [PATCH 8/8] Drop redundant Monoid (ResponseMetadata a) constraints
+
+---
+ Aws/Aws.hs | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index cc4a440..159df36 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -203,7 +203,6 @@ simpleAws cfg scfg request = liftIO $ runResourceT $ do
+ -- Metadata is wrapped in the Response, and also logged at level 'Info'.
+ unsafeAws
+   :: (ResponseConsumer r a,
+-      Monoid (ResponseMetadata a),
+       Loggable (ResponseMetadata a),
+       SignQuery r) =>
+      Configuration -> ServiceConfiguration r NormalQuery -> HTTP.Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
+@@ -228,7 +227,6 @@ unsafeAws cfg scfg manager request = do
+ -- Metadata is put in the 'IORef', but not logged.
+ unsafeAwsRef
+   :: (ResponseConsumer r a,
+-      Monoid (ResponseMetadata a),
+       SignQuery r) =>
+      Configuration -> ServiceConfiguration r NormalQuery -> HTTP.Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
+ unsafeAwsRef cfg info manager metadataRef request = do

Copied: haskell-aws/repos/community-staging-x86_64/PKGBUILD (from rev 200630, haskell-aws/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2016-12-21 06:25:01 UTC (rev 200631)
@@ -0,0 +1,59 @@
+# $Id$
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Arch Haskell Team <arch-haskell at haskell.org>
+
+_hkgname=aws
+pkgname=haskell-aws
+pkgver=0.14.1
+pkgrel=12
+pkgdesc="Amazon Web Services (AWS) for Haskell"
+url="http://github.com/aristidb/aws"
+license=("custom:BSD3")
+arch=('i686' 'x86_64')
+depends=("ghc=8.0.1" "haskell-aeson" "haskell-attoparsec" "haskell-base16-bytestring"
+         "haskell-base64-bytestring" "haskell-blaze-builder" "haskell-byteable"
+         "haskell-case-insensitive" "haskell-cereal" "haskell-conduit"
+         "haskell-conduit-extra" "haskell-cryptohash" "haskell-data-default"
+         "haskell-http-conduit" "haskell-http-types" "haskell-lifted-base"
+         "haskell-monad-control" "haskell-mtl" "haskell-network" "haskell-old-locale"
+         "haskell-resourcet" "haskell-safe" "haskell-scientific" "haskell-tagged"
+         "haskell-text" "haskell-unordered-containers" "haskell-utf8-string"
+         "haskell-vector" "haskell-xml-conduit")
+source=("https://hackage.haskell.org/packages/archive/${_hkgname}/${pkgver}/${_hkgname}-${pkgver}.tar.gz"
+        http-conduit-2.2.patch)
+sha256sums=('6a2079853ddc781b46fe3ddce31e88c0b6b2441f458141bca3cd1c7216cbe579'
+            '51123da7d47793cbc8b45b1bc494b1f322b96f8f809b659fd229a7075f74160f')
+
+prepare() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    patch -p1 -i ../http-conduit-2.2.patch
+
+    sed -i 's/xml-conduit          >= 1.2     && <1.4/xml-conduit >= 1.2 \&\& <1.5/' aws.cabal
+}
+
+build() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    
+    runhaskell Setup configure -O --enable-library-profiling --enable-shared \
+        --prefix=/usr --docdir="/usr/share/doc/${pkgname}" \
+        --libsubdir=\$compiler/site-local/\$pkgid \
+            -f-examples
+    runhaskell Setup build
+    runhaskell Setup haddock --hoogle --html
+    runhaskell Setup register --gen-script
+    runhaskell Setup unregister --gen-script
+    sed -i -r -e "s|ghc-pkg.*update[^ ]* |&'--force' |" register.sh
+    sed -i -r -e "s|ghc-pkg.*unregister[^ ]* |&'--force' |" unregister.sh
+}
+
+package() {
+    cd "${srcdir}/${_hkgname}-${pkgver}"
+    
+    install -D -m744 register.sh   "${pkgdir}/usr/share/haskell/register/${pkgname}.sh"
+    install -D -m744 unregister.sh "${pkgdir}/usr/share/haskell/unregister/${pkgname}.sh"
+    install -d -m755 "${pkgdir}/usr/share/doc/ghc/html/libraries"
+    ln -s "/usr/share/doc/${pkgname}/html" "${pkgdir}/usr/share/doc/ghc/html/libraries/${_hkgname}"
+    runhaskell Setup copy --destdir="${pkgdir}"
+    install -D -m644 "LICENSE" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+    rm -f "${pkgdir}/usr/share/doc/${pkgname}/LICENSE"
+}

Copied: haskell-aws/repos/community-staging-x86_64/http-conduit-2.2.patch (from rev 200630, haskell-aws/trunk/http-conduit-2.2.patch)
===================================================================
--- community-staging-x86_64/http-conduit-2.2.patch	                        (rev 0)
+++ community-staging-x86_64/http-conduit-2.2.patch	2016-12-21 06:25:01 UTC (rev 200631)
@@ -0,0 +1,1914 @@
+From 72091804304b2dbed7ecbae62eae765a431d235d Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:38:58 -0400
+Subject: [PATCH 1/8] Pass http-client Request to responseConsumer
+
+This is potentially needed for error handling as HttpException now
+includes it.
+---
+ Aws/Aws.hs                                              |  2 +-
+ Aws/Core.hs                                             |  9 +++++----
+ Aws/DynamoDb/Commands/DeleteItem.hs                     |  2 +-
+ Aws/DynamoDb/Commands/GetItem.hs                        |  2 +-
+ Aws/DynamoDb/Commands/PutItem.hs                        |  2 +-
+ Aws/DynamoDb/Commands/Query.hs                          |  3 ++-
+ Aws/DynamoDb/Commands/Scan.hs                           |  2 +-
+ Aws/DynamoDb/Commands/Table.hs                          | 12 ++++++------
+ Aws/DynamoDb/Commands/UpdateItem.hs                     |  2 +-
+ Aws/Iam/Commands/CreateAccessKey.hs                     |  2 +-
+ Aws/Iam/Commands/CreateUser.hs                          |  5 +++--
+ Aws/Iam/Commands/DeleteAccessKey.hs                     |  3 ++-
+ Aws/Iam/Commands/DeleteUser.hs                          |  3 ++-
+ Aws/Iam/Commands/DeleteUserPolicy.hs                    |  3 ++-
+ Aws/Iam/Commands/GetUser.hs                             |  4 ++--
+ Aws/Iam/Commands/GetUserPolicy.hs                       |  2 +-
+ Aws/Iam/Commands/ListAccessKeys.hs                      |  2 +-
+ Aws/Iam/Commands/ListMfaDevices.hs                      |  2 +-
+ Aws/Iam/Commands/ListUserPolicies.hs                    |  2 +-
+ Aws/Iam/Commands/ListUsers.hs                           |  2 +-
+ Aws/Iam/Commands/PutUserPolicy.hs                       |  2 +-
+ Aws/Iam/Commands/UpdateAccessKey.hs                     |  2 +-
+ Aws/Iam/Commands/UpdateUser.hs                          |  2 +-
+ Aws/S3/Commands/CopyObject.hs                           |  2 +-
+ Aws/S3/Commands/DeleteBucket.hs                         |  2 +-
+ Aws/S3/Commands/DeleteObject.hs                         |  3 ++-
+ Aws/S3/Commands/DeleteObjects.hs                        |  2 +-
+ Aws/S3/Commands/GetBucket.hs                            |  2 +-
+ Aws/S3/Commands/GetBucketLocation.hs                    |  2 +-
+ Aws/S3/Commands/GetObject.hs                            |  2 +-
+ Aws/S3/Commands/GetService.hs                           |  2 +-
+ Aws/S3/Commands/HeadObject.hs                           |  2 +-
+ Aws/S3/Commands/Multipart.hs                            |  8 ++++----
+ Aws/S3/Commands/PutBucket.hs                            |  2 +-
+ Aws/S3/Commands/PutObject.hs                            |  2 +-
+ Aws/Ses/Commands/DeleteIdentity.hs                      |  3 ++-
+ Aws/Ses/Commands/GetIdentityDkimAttributes.hs           |  2 +-
+ Aws/Ses/Commands/GetIdentityNotificationAttributes.hs   |  2 +-
+ Aws/Ses/Commands/GetIdentityVerificationAttributes.hs   |  2 +-
+ Aws/Ses/Commands/ListIdentities.hs                      |  2 +-
+ Aws/Ses/Commands/SendRawEmail.hs                        |  2 +-
+ Aws/Ses/Commands/SetIdentityDkimEnabled.hs              |  3 ++-
+ .../Commands/SetIdentityFeedbackForwardingEnabled.hs    |  3 ++-
+ Aws/Ses/Commands/SetIdentityNotificationTopic.hs        |  3 ++-
+ Aws/Ses/Commands/VerifyDomainDkim.hs                    |  2 +-
+ Aws/Ses/Commands/VerifyDomainIdentity.hs                |  2 +-
+ Aws/Ses/Commands/VerifyEmailIdentity.hs                 |  3 ++-
+ Aws/SimpleDb/Commands/Attributes.hs                     | 17 +++++++++++------
+ Aws/SimpleDb/Commands/Domain.hs                         | 11 +++++++----
+ Aws/SimpleDb/Commands/Select.hs                         |  2 +-
+ Aws/Sqs/Commands/Message.hs                             |  8 ++++----
+ Aws/Sqs/Commands/Permission.hs                          |  6 +++---
+ Aws/Sqs/Commands/Queue.hs                               |  8 ++++----
+ Aws/Sqs/Commands/QueueAttributes.hs                     |  6 +++---
+ 54 files changed, 105 insertions(+), 85 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 0fb36da..5fad82e 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -247,7 +247,7 @@ unsafeAwsRef cfg info manager metadataRef request = do
+   logDebug $ "Response status: " ++ show (HTTP.responseStatus hresp)
+   forM_ (HTTP.responseHeaders hresp) $ \(hname,hvalue) -> liftIO $
+     logger cfg Debug $ T.decodeUtf8 $ "Response header '" `mappend` CI.original hname `mappend` "': '" `mappend` hvalue `mappend` "'"
+-  {-# SCC "unsafeAwsRef:responseConsumer" #-} responseConsumer request metadataRef hresp
++  {-# SCC "unsafeAwsRef:responseConsumer" #-} responseConsumer httpRequest request metadataRef hresp
+ 
+ -- | Run a URI-only AWS transaction. Returns a URI that can be sent anywhere. Does not work with all requests.
+ --
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 1a13c38..ec5d033 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -201,14 +201,15 @@ class Monoid (ResponseMetadata resp) => ResponseConsumer req resp where
+     -- metadata type for each AWS service.
+     type ResponseMetadata resp
+ 
+-    -- | Response parser. Takes the corresponding request, an 'IORef'
+-    -- for metadata, and HTTP response data.
+-    responseConsumer :: req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp
++    -- | Response parser. Takes the corresponding AWS request, the derived
++    -- @http-client@ request (for error reporting), an 'IORef' for metadata, and
++    -- HTTP response data.
++    responseConsumer :: HTTP.Request -> req -> IORef (ResponseMetadata resp) -> HTTPResponseConsumer resp
+ 
+ -- | Does not parse response. For debugging.
+ instance ResponseConsumer r (HTTP.Response L.ByteString) where
+     type ResponseMetadata (HTTP.Response L.ByteString) = ()
+-    responseConsumer _ _ resp = do
++    responseConsumer _ _ _ resp = do
+         bss <- HTTP.responseBody resp $$+- CL.consume
+         return resp
+             { HTTP.responseBody = L.fromChunks bss
+diff --git a/Aws/DynamoDb/Commands/DeleteItem.hs b/Aws/DynamoDb/Commands/DeleteItem.hs
+index f541602..7f47e3a 100644
+--- a/Aws/DynamoDb/Commands/DeleteItem.hs
++++ b/Aws/DynamoDb/Commands/DeleteItem.hs
+@@ -97,7 +97,7 @@ instance FromJSON DeleteItemResponse where
+ 
+ instance ResponseConsumer r DeleteItemResponse where
+     type ResponseMetadata DeleteItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse DeleteItemResponse where
+diff --git a/Aws/DynamoDb/Commands/GetItem.hs b/Aws/DynamoDb/Commands/GetItem.hs
+index 960b968..85bbf9f 100644
+--- a/Aws/DynamoDb/Commands/GetItem.hs
++++ b/Aws/DynamoDb/Commands/GetItem.hs
+@@ -84,7 +84,7 @@ instance FromJSON GetItemResponse where
+ 
+ instance ResponseConsumer r GetItemResponse where
+     type ResponseMetadata GetItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse GetItemResponse where
+diff --git a/Aws/DynamoDb/Commands/PutItem.hs b/Aws/DynamoDb/Commands/PutItem.hs
+index 2dfe55a..0ad51b1 100644
+--- a/Aws/DynamoDb/Commands/PutItem.hs
++++ b/Aws/DynamoDb/Commands/PutItem.hs
+@@ -98,7 +98,7 @@ instance FromJSON PutItemResponse where
+ 
+ instance ResponseConsumer r PutItemResponse where
+     type ResponseMetadata PutItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse PutItemResponse where
+diff --git a/Aws/DynamoDb/Commands/Query.hs b/Aws/DynamoDb/Commands/Query.hs
+index 90afdee..c01bbea 100644
+--- a/Aws/DynamoDb/Commands/Query.hs
++++ b/Aws/DynamoDb/Commands/Query.hs
+@@ -135,7 +135,8 @@ instance SignQuery Query where
+ 
+ instance ResponseConsumer r QueryResponse where
+     type ResponseMetadata QueryResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp
++        = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse QueryResponse where
+diff --git a/Aws/DynamoDb/Commands/Scan.hs b/Aws/DynamoDb/Commands/Scan.hs
+index 1135c61..f1e0397 100644
+--- a/Aws/DynamoDb/Commands/Scan.hs
++++ b/Aws/DynamoDb/Commands/Scan.hs
+@@ -114,7 +114,7 @@ instance SignQuery Scan where
+ 
+ instance ResponseConsumer r ScanResponse where
+     type ResponseMetadata ScanResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse ScanResponse where
+diff --git a/Aws/DynamoDb/Commands/Table.hs b/Aws/DynamoDb/Commands/Table.hs
+index d90c3a9..59b8b44 100644
+--- a/Aws/DynamoDb/Commands/Table.hs
++++ b/Aws/DynamoDb/Commands/Table.hs
+@@ -293,7 +293,7 @@ instance A.FromJSON TableDescription where
+ {- Can't derive these instances onto the return values
+ instance ResponseConsumer r TableDescription where
+     type ResponseMetadata TableDescription = DyMetadata
+-    responseConsumer _ _ = ddbResponseConsumer
++    responseConsumer _ _ _ = ddbResponseConsumer
+ instance AsMemoryResponse TableDescription where
+     type MemoryResponse TableDescription = TableDescription
+     loadToMemory = return
+@@ -351,7 +351,7 @@ newtype CreateTableResult = CreateTableResult { ctStatus :: TableDescription }
+ -- ResponseConsumer and AsMemoryResponse can't be derived
+ instance ResponseConsumer r CreateTableResult where
+     type ResponseMetadata CreateTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse CreateTableResult where
+     type MemoryResponse CreateTableResult = TableDescription
+     loadToMemory = return . ctStatus
+@@ -376,7 +376,7 @@ newtype DescribeTableResult = DescribeTableResult { dtStatus :: TableDescription
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r DescribeTableResult where
+     type ResponseMetadata DescribeTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse DescribeTableResult where
+     type MemoryResponse DescribeTableResult = TableDescription
+     loadToMemory = return . dtStatus
+@@ -408,7 +408,7 @@ newtype UpdateTableResult = UpdateTableResult { uStatus :: TableDescription }
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r UpdateTableResult where
+     type ResponseMetadata UpdateTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse UpdateTableResult where
+     type MemoryResponse UpdateTableResult = TableDescription
+     loadToMemory = return . uStatus
+@@ -433,7 +433,7 @@ newtype DeleteTableResult = DeleteTableResult { dStatus :: TableDescription }
+ -- ResponseConsumer can't be derived
+ instance ResponseConsumer r DeleteTableResult where
+     type ResponseMetadata DeleteTableResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse DeleteTableResult where
+     type MemoryResponse DeleteTableResult = TableDescription
+     loadToMemory = return . dStatus
+@@ -459,7 +459,7 @@ instance A.FromJSON ListTablesResult where
+     parseJSON = A.genericParseJSON capitalizeOpt
+ instance ResponseConsumer r ListTablesResult where
+     type ResponseMetadata ListTablesResult = DdbResponse
+-    responseConsumer _ = ddbResponseConsumer
++    responseConsumer _ _ = ddbResponseConsumer
+ instance AsMemoryResponse ListTablesResult where
+     type MemoryResponse ListTablesResult = [T.Text]
+     loadToMemory = return . tableNames
+diff --git a/Aws/DynamoDb/Commands/UpdateItem.hs b/Aws/DynamoDb/Commands/UpdateItem.hs
+index a2290a8..84b46a5 100644
+--- a/Aws/DynamoDb/Commands/UpdateItem.hs
++++ b/Aws/DynamoDb/Commands/UpdateItem.hs
+@@ -158,7 +158,7 @@ instance FromJSON UpdateItemResponse where
+ 
+ instance ResponseConsumer r UpdateItemResponse where
+     type ResponseMetadata UpdateItemResponse = DdbResponse
+-    responseConsumer _ ref resp = ddbResponseConsumer ref resp
++    responseConsumer _ _ ref resp = ddbResponseConsumer ref resp
+ 
+ 
+ instance AsMemoryResponse UpdateItemResponse where
+diff --git a/Aws/Iam/Commands/CreateAccessKey.hs b/Aws/Iam/Commands/CreateAccessKey.hs
+index a95a304..20cb071 100644
+--- a/Aws/Iam/Commands/CreateAccessKey.hs
++++ b/Aws/Iam/Commands/CreateAccessKey.hs
+@@ -58,7 +58,7 @@ data CreateAccessKeyResponse
+ 
+ instance ResponseConsumer CreateAccessKey CreateAccessKeyResponse where
+     type ResponseMetadata CreateAccessKeyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             let attr name = force ("Missing " ++ Text.unpack name) $
+                             cursor $// elContent name
+diff --git a/Aws/Iam/Commands/CreateUser.hs b/Aws/Iam/Commands/CreateUser.hs
+index 7022045..c3a0aa1 100644
+--- a/Aws/Iam/Commands/CreateUser.hs
++++ b/Aws/Iam/Commands/CreateUser.hs
+@@ -41,8 +41,9 @@ data CreateUserResponse = CreateUserResponse User
+ 
+ instance ResponseConsumer CreateUser CreateUserResponse where
+     type ResponseMetadata CreateUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer $
+-                         fmap CreateUserResponse . parseUser
++    responseConsumer _ _
++        = iamResponseConsumer $
++          fmap CreateUserResponse . parseUser
+ 
+ instance Transaction CreateUser CreateUserResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteAccessKey.hs b/Aws/Iam/Commands/DeleteAccessKey.hs
+index 627f6e3..b4e2084 100644
+--- a/Aws/Iam/Commands/DeleteAccessKey.hs
++++ b/Aws/Iam/Commands/DeleteAccessKey.hs
+@@ -39,7 +39,8 @@ data DeleteAccessKeyResponse = DeleteAccessKeyResponse
+ 
+ instance ResponseConsumer DeleteAccessKey DeleteAccessKeyResponse where
+     type ResponseMetadata DeleteAccessKeyResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteAccessKeyResponse)
++    responseConsumer _ _
++        = iamResponseConsumer (const $ return DeleteAccessKeyResponse)
+ 
+ instance Transaction DeleteAccessKey DeleteAccessKeyResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteUser.hs b/Aws/Iam/Commands/DeleteUser.hs
+index 491e3b1..afd2132 100644
+--- a/Aws/Iam/Commands/DeleteUser.hs
++++ b/Aws/Iam/Commands/DeleteUser.hs
+@@ -27,7 +27,8 @@ data DeleteUserResponse = DeleteUserResponse
+ 
+ instance ResponseConsumer DeleteUser DeleteUserResponse where
+     type ResponseMetadata DeleteUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteUserResponse)
++    responseConsumer _ _
++        = iamResponseConsumer (const $ return DeleteUserResponse)
+ 
+ instance Transaction DeleteUser DeleteUserResponse
+ 
+diff --git a/Aws/Iam/Commands/DeleteUserPolicy.hs b/Aws/Iam/Commands/DeleteUserPolicy.hs
+index 7a1c38f..9cf1279 100644
+--- a/Aws/Iam/Commands/DeleteUserPolicy.hs
++++ b/Aws/Iam/Commands/DeleteUserPolicy.hs
+@@ -37,7 +37,8 @@ data DeleteUserPolicyResponse = DeleteUserPolicyResponse
+ 
+ instance ResponseConsumer DeleteUserPolicy DeleteUserPolicyResponse where
+     type ResponseMetadata DeleteUserPolicyResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer (const $ return DeleteUserPolicyResponse)
++    responseConsumer _ _ =
++        iamResponseConsumer (const $ return DeleteUserPolicyResponse)
+ 
+ instance Transaction DeleteUserPolicy DeleteUserPolicyResponse
+ 
+diff --git a/Aws/Iam/Commands/GetUser.hs b/Aws/Iam/Commands/GetUser.hs
+index 171c34e..67c46b3 100644
+--- a/Aws/Iam/Commands/GetUser.hs
++++ b/Aws/Iam/Commands/GetUser.hs
+@@ -33,8 +33,8 @@ data GetUserResponse = GetUserResponse User
+ 
+ instance ResponseConsumer GetUser GetUserResponse where
+     type ResponseMetadata GetUserResponse = IamMetadata
+-    responseConsumer _ = iamResponseConsumer $
+-                         fmap GetUserResponse . parseUser
++    responseConsumer _ _ = iamResponseConsumer $
++                           fmap GetUserResponse . parseUser
+ 
+ instance Transaction GetUser GetUserResponse
+ 
+diff --git a/Aws/Iam/Commands/GetUserPolicy.hs b/Aws/Iam/Commands/GetUserPolicy.hs
+index 9f43e25..e9e33d2 100644
+--- a/Aws/Iam/Commands/GetUserPolicy.hs
++++ b/Aws/Iam/Commands/GetUserPolicy.hs
+@@ -50,7 +50,7 @@ data GetUserPolicyResponse
+ 
+ instance ResponseConsumer GetUserPolicy GetUserPolicyResponse where
+     type ResponseMetadata GetUserPolicyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             let attr name = force ("Missing " ++ Text.unpack name) $
+                             cursor $// elContent name
+diff --git a/Aws/Iam/Commands/ListAccessKeys.hs b/Aws/Iam/Commands/ListAccessKeys.hs
+index 2d00f34..0e247ab 100644
+--- a/Aws/Iam/Commands/ListAccessKeys.hs
++++ b/Aws/Iam/Commands/ListAccessKeys.hs
+@@ -71,7 +71,7 @@ data ListAccessKeysResponse
+ 
+ instance ResponseConsumer ListAccessKeys ListAccessKeysResponse where
+     type ResponseMetadata ListAccessKeysResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (lakrIsTruncated, lakrMarker) <- markedIterResponse cursor
+             lakrAccessKeyMetadata <- sequence $
+diff --git a/Aws/Iam/Commands/ListMfaDevices.hs b/Aws/Iam/Commands/ListMfaDevices.hs
+index 3c8eef2..7bad6f2 100644
+--- a/Aws/Iam/Commands/ListMfaDevices.hs
++++ b/Aws/Iam/Commands/ListMfaDevices.hs
+@@ -60,7 +60,7 @@ data ListMfaDevicesResponse = ListMfaDevicesResponse
+ 
+ instance ResponseConsumer ListMfaDevices ListMfaDevicesResponse where
+   type ResponseMetadata ListMfaDevicesResponse = IamMetadata
+-  responseConsumer _req =
++  responseConsumer _ _req =
+     iamResponseConsumer $ \ cursor -> do
+       (lmfarIsTruncated, lmfarMarker) <- markedIterResponse cursor
+       lmfarMfaDevices <-
+diff --git a/Aws/Iam/Commands/ListUserPolicies.hs b/Aws/Iam/Commands/ListUserPolicies.hs
+index 25027cf..ee90483 100644
+--- a/Aws/Iam/Commands/ListUserPolicies.hs
++++ b/Aws/Iam/Commands/ListUserPolicies.hs
+@@ -52,7 +52,7 @@ data ListUserPoliciesResponse
+ 
+ instance ResponseConsumer ListUserPolicies ListUserPoliciesResponse where
+     type ResponseMetadata ListUserPoliciesResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (luprIsTruncated, luprMarker) <- markedIterResponse cursor
+             let luprPolicyNames = cursor $// laxElement "member" &/ content
+diff --git a/Aws/Iam/Commands/ListUsers.hs b/Aws/Iam/Commands/ListUsers.hs
+index 6ee5e7d..01eff2a 100644
+--- a/Aws/Iam/Commands/ListUsers.hs
++++ b/Aws/Iam/Commands/ListUsers.hs
+@@ -55,7 +55,7 @@ data ListUsersResponse
+ 
+ instance ResponseConsumer ListUsers ListUsersResponse where
+     type ResponseMetadata ListUsersResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer $ \cursor -> do
+             (lurIsTruncated, lurMarker) <- markedIterResponse cursor
+             lurUsers <- sequence $
+diff --git a/Aws/Iam/Commands/PutUserPolicy.hs b/Aws/Iam/Commands/PutUserPolicy.hs
+index bd93db8..9392878 100644
+--- a/Aws/Iam/Commands/PutUserPolicy.hs
++++ b/Aws/Iam/Commands/PutUserPolicy.hs
+@@ -41,7 +41,7 @@ data PutUserPolicyResponse = PutUserPolicyResponse
+ 
+ instance ResponseConsumer PutUserPolicy PutUserPolicyResponse where
+     type ResponseMetadata PutUserPolicyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return PutUserPolicyResponse)
+ 
+ instance Transaction PutUserPolicy PutUserPolicyResponse
+diff --git a/Aws/Iam/Commands/UpdateAccessKey.hs b/Aws/Iam/Commands/UpdateAccessKey.hs
+index 2df59a8..ba54971 100644
+--- a/Aws/Iam/Commands/UpdateAccessKey.hs
++++ b/Aws/Iam/Commands/UpdateAccessKey.hs
+@@ -47,7 +47,7 @@ data UpdateAccessKeyResponse = UpdateAccessKeyResponse
+ 
+ instance ResponseConsumer UpdateAccessKey UpdateAccessKeyResponse where
+     type ResponseMetadata UpdateAccessKeyResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return UpdateAccessKeyResponse)
+ 
+ instance Transaction UpdateAccessKey UpdateAccessKeyResponse
+diff --git a/Aws/Iam/Commands/UpdateUser.hs b/Aws/Iam/Commands/UpdateUser.hs
+index 84d84f7..84b27eb 100644
+--- a/Aws/Iam/Commands/UpdateUser.hs
++++ b/Aws/Iam/Commands/UpdateUser.hs
+@@ -42,7 +42,7 @@ data UpdateUserResponse = UpdateUserResponse
+ 
+ instance ResponseConsumer UpdateUser UpdateUserResponse where
+     type ResponseMetadata UpdateUserResponse = IamMetadata
+-    responseConsumer _
++    responseConsumer _ _
+         = iamResponseConsumer (const $ return UpdateUserResponse)
+ 
+ instance Transaction UpdateUser UpdateUserResponse
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index b23c8a3..a748186 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -94,7 +94,7 @@ instance SignQuery CopyObject where
+ 
+ instance ResponseConsumer CopyObject CopyObjectResponse where
+     type ResponseMetadata CopyObjectResponse = S3Metadata
+-    responseConsumer _ mref = flip s3ResponseConsumer mref $ \resp -> do
++    responseConsumer _ _ mref = flip s3ResponseConsumer mref $ \resp -> do
+         let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+         (lastMod, etag) <- xmlCursorConsumer parse mref resp
+         return $ CopyObjectResponse vid lastMod etag
+diff --git a/Aws/S3/Commands/DeleteBucket.hs b/Aws/S3/Commands/DeleteBucket.hs
+index ebecdb1..c96acaa 100644
+--- a/Aws/S3/Commands/DeleteBucket.hs
++++ b/Aws/S3/Commands/DeleteBucket.hs
+@@ -31,7 +31,7 @@ instance SignQuery DeleteBucket where
+ 
+ instance ResponseConsumer DeleteBucket DeleteBucketResponse where
+     type ResponseMetadata DeleteBucketResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return DeleteBucketResponse
++    responseConsumer _ _ = s3ResponseConsumer $ \_ -> return DeleteBucketResponse
+ 
+ instance Transaction DeleteBucket DeleteBucketResponse
+ 
+diff --git a/Aws/S3/Commands/DeleteObject.hs b/Aws/S3/Commands/DeleteObject.hs
+index 707f563..65b6122 100644
+--- a/Aws/S3/Commands/DeleteObject.hs
++++ b/Aws/S3/Commands/DeleteObject.hs
+@@ -33,7 +33,8 @@ instance SignQuery DeleteObject where
+ 
+ instance ResponseConsumer DeleteObject DeleteObjectResponse where
+     type ResponseMetadata DeleteObjectResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return DeleteObjectResponse
++    responseConsumer _ _
++        = s3ResponseConsumer $ \_ -> return DeleteObjectResponse
+ 
+ instance Transaction DeleteObject DeleteObjectResponse
+ 
+diff --git a/Aws/S3/Commands/DeleteObjects.hs b/Aws/S3/Commands/DeleteObjects.hs
+index 9ec3589..c74ac0e 100644
+--- a/Aws/S3/Commands/DeleteObjects.hs
++++ b/Aws/S3/Commands/DeleteObjects.hs
+@@ -103,7 +103,7 @@ instance SignQuery DeleteObjects where
+ instance ResponseConsumer DeleteObjects DeleteObjectsResponse where
+     type ResponseMetadata DeleteObjectsResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor = do
+                   dorDeleted <- sequence $ cursor $/ Cu.laxElement "Deleted" &| parseDeleted
+                   dorErrors  <- sequence $ cursor $/ Cu.laxElement "Error" &| parseErrors
+diff --git a/Aws/S3/Commands/GetBucket.hs b/Aws/S3/Commands/GetBucket.hs
+index d978993..0d24879 100644
+--- a/Aws/S3/Commands/GetBucket.hs
++++ b/Aws/S3/Commands/GetBucket.hs
+@@ -72,7 +72,7 @@ instance SignQuery GetBucket where
+ instance ResponseConsumer r GetBucketResponse where
+     type ResponseMetadata GetBucketResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do name <- force "Missing Name" $ cursor $/ elContent "Name"
+                        let delimiter = listToMaybe $ cursor $/ elContent "Delimiter"
+diff --git a/Aws/S3/Commands/GetBucketLocation.hs b/Aws/S3/Commands/GetBucketLocation.hs
+index f729f04..b19e17f 100644
+--- a/Aws/S3/Commands/GetBucketLocation.hs
++++ b/Aws/S3/Commands/GetBucketLocation.hs
+@@ -44,7 +44,7 @@ instance SignQuery GetBucketLocation where
+ instance ResponseConsumer r GetBucketLocationResponse where
+   type ResponseMetadata GetBucketLocationResponse = S3Metadata
+ 
+-  responseConsumer _ = s3XmlResponseConsumer parse
++  responseConsumer _ _ = s3XmlResponseConsumer parse
+     where parse cursor = do
+             locationConstraint <- force "Missing Location" $ cursor $.// elContent "LocationConstraint"
+             return GetBucketLocationResponse { gblrLocationConstraint = normaliseLocation locationConstraint }
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 773256b..5a60611 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -79,7 +79,7 @@ instance SignQuery GetObject where
+ 
+ instance ResponseConsumer GetObject GetObjectResponse where
+     type ResponseMetadata GetObjectResponse = S3Metadata
+-    responseConsumer GetObject{..} metadata resp
++    responseConsumer _ GetObject{..} metadata resp
+         | status == HTTP.status200 = do
+             rsp <- s3BinaryResponseConsumer return metadata resp
+             om <- parseObjectMetadata (HTTP.responseHeaders resp)
+diff --git a/Aws/S3/Commands/GetService.hs b/Aws/S3/Commands/GetService.hs
+index d453517..a2a7ecc 100644
+--- a/Aws/S3/Commands/GetService.hs
++++ b/Aws/S3/Commands/GetService.hs
+@@ -25,7 +25,7 @@ data GetServiceResponse
+ instance ResponseConsumer r GetServiceResponse where
+     type ResponseMetadata GetServiceResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where
+           parse el = do
+             owner <- forceM "Missing Owner" $ el $/ Cu.laxElement "Owner" &| parseUserInfo
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index d58baf4..dbc9cc0 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -60,7 +60,7 @@ instance SignQuery HeadObject where
+ 
+ instance ResponseConsumer HeadObject HeadObjectResponse where
+     type ResponseMetadata HeadObjectResponse = S3Metadata
+-    responseConsumer HeadObject{..} _ resp
++    responseConsumer _ HeadObject{..} _ resp
+         | status == HTTP.status200 = HeadObjectResponse . Just <$> parseObjectMetadata headers
+         | status == HTTP.status404 = return $ HeadObjectResponse Nothing
+         | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
+diff --git a/Aws/S3/Commands/Multipart.hs b/Aws/S3/Commands/Multipart.hs
+index 176ffbd..f70524c 100644
+--- a/Aws/S3/Commands/Multipart.hs
++++ b/Aws/S3/Commands/Multipart.hs
+@@ -99,7 +99,7 @@ instance SignQuery InitiateMultipartUpload where
+ instance ResponseConsumer r InitiateMultipartUploadResponse where
+     type ResponseMetadata InitiateMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do bucket <- force "Missing Bucket Name" $ cursor $/ elContent "Bucket"
+                        key <- force "Missing Key" $ cursor $/ elContent "Key"
+@@ -172,7 +172,7 @@ instance SignQuery UploadPart where
+ 
+ instance ResponseConsumer UploadPart UploadPartResponse where
+     type ResponseMetadata UploadPartResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \resp -> do
++    responseConsumer _ _ = s3ResponseConsumer $ \resp -> do
+       let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+       let etag = fromMaybe "" $ T.decodeUtf8 `fmap` lookup "ETag" (HTTP.responseHeaders resp)
+       return $ UploadPartResponse vid etag
+@@ -259,7 +259,7 @@ instance SignQuery CompleteMultipartUpload where
+ instance ResponseConsumer r CompleteMultipartUploadResponse where
+     type ResponseMetadata CompleteMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse cursor
+                   = do location <- force "Missing Location" $ cursor $/ elContent "Location"
+                        bucket <- force "Missing Bucket Name" $ cursor $/ elContent "Bucket"
+@@ -318,7 +318,7 @@ instance SignQuery AbortMultipartUpload where
+ instance ResponseConsumer r AbortMultipartUploadResponse where
+     type ResponseMetadata AbortMultipartUploadResponse = S3Metadata
+ 
+-    responseConsumer _ = s3XmlResponseConsumer parse
++    responseConsumer _ _ = s3XmlResponseConsumer parse
+         where parse _cursor
+                   = return AbortMultipartUploadResponse {}
+ 
+diff --git a/Aws/S3/Commands/PutBucket.hs b/Aws/S3/Commands/PutBucket.hs
+index 84cca90..83d2c36 100644
+--- a/Aws/S3/Commands/PutBucket.hs
++++ b/Aws/S3/Commands/PutBucket.hs
+@@ -74,7 +74,7 @@ instance SignQuery PutBucket where
+ instance ResponseConsumer r PutBucketResponse where
+     type ResponseMetadata PutBucketResponse = S3Metadata
+ 
+-    responseConsumer _ = s3ResponseConsumer $ \_ -> return PutBucketResponse
++    responseConsumer _ _ = s3ResponseConsumer $ \_ -> return PutBucketResponse
+ 
+ instance Transaction PutBucket PutBucketResponse
+ 
+diff --git a/Aws/S3/Commands/PutObject.hs b/Aws/S3/Commands/PutObject.hs
+index eac0879..9f67cd5 100644
+--- a/Aws/S3/Commands/PutObject.hs
++++ b/Aws/S3/Commands/PutObject.hs
+@@ -83,7 +83,7 @@ instance SignQuery PutObject where
+ 
+ instance ResponseConsumer PutObject PutObjectResponse where
+     type ResponseMetadata PutObjectResponse = S3Metadata
+-    responseConsumer _ = s3ResponseConsumer $ \resp -> do
++    responseConsumer _ _ = s3ResponseConsumer $ \resp -> do
+       let vid = T.decodeUtf8 `fmap` lookup "x-amz-version-id" (HTTP.responseHeaders resp)
+       return $ PutObjectResponse vid
+ 
+diff --git a/Aws/Ses/Commands/DeleteIdentity.hs b/Aws/Ses/Commands/DeleteIdentity.hs
+index d4ac908..bbeb463 100644
+--- a/Aws/Ses/Commands/DeleteIdentity.hs
++++ b/Aws/Ses/Commands/DeleteIdentity.hs
+@@ -29,7 +29,8 @@ data DeleteIdentityResponse = DeleteIdentityResponse
+ 
+ instance ResponseConsumer DeleteIdentity DeleteIdentityResponse where
+     type ResponseMetadata DeleteIdentityResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return DeleteIdentityResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return DeleteIdentityResponse
+ 
+ 
+ instance Transaction DeleteIdentity DeleteIdentityResponse where
+diff --git a/Aws/Ses/Commands/GetIdentityDkimAttributes.hs b/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
+index 5bf18ca..aa5824b 100644
+--- a/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityDkimAttributes.hs
+@@ -44,7 +44,7 @@ data GetIdentityDkimAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityDkimAttributes GetIdentityDkimAttributesResponse where
+     type ResponseMetadata GetIdentityDkimAttributesResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \cursor -> do
++    responseConsumer _ _ = sesResponseConsumer $ \cursor -> do
+         let buildAttr e = do
+               idIdentity <- force "Missing Key" $ e $/ elContent "key"
+               enabled <- force "Missing DkimEnabled" $ e $// elContent "DkimEnabled"
+diff --git a/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs b/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
+index ddd2122..55e2875 100644
+--- a/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityNotificationAttributes.hs
+@@ -43,7 +43,7 @@ data GetIdentityNotificationAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityNotificationAttributes GetIdentityNotificationAttributesResponse where
+     type ResponseMetadata GetIdentityNotificationAttributesResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \cursor -> do
++    responseConsumer _ _ = sesResponseConsumer $ \cursor -> do
+         let buildAttr e = do
+               inIdentity <- force "Missing Key" $ e $/ elContent "key"
+               fwdText <- force "Missing ForwardingEnabled" $ e $// elContent "ForwardingEnabled"
+diff --git a/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs b/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
+index 667e1e8..d9c99a2 100644
+--- a/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
++++ b/Aws/Ses/Commands/GetIdentityVerificationAttributes.hs
+@@ -45,7 +45,7 @@ data GetIdentityVerificationAttributesResponse =
+ 
+ instance ResponseConsumer GetIdentityVerificationAttributes GetIdentityVerificationAttributesResponse where
+     type ResponseMetadata GetIdentityVerificationAttributesResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+          let buildAttr e = do
+                ivIdentity <- force "Missing Key" $ e $/ elContent "key"
+diff --git a/Aws/Ses/Commands/ListIdentities.hs b/Aws/Ses/Commands/ListIdentities.hs
+index 6712225..1a6f183 100644
+--- a/Aws/Ses/Commands/ListIdentities.hs
++++ b/Aws/Ses/Commands/ListIdentities.hs
+@@ -50,7 +50,7 @@ data ListIdentitiesResponse = ListIdentitiesResponse [Text]
+ 
+ instance ResponseConsumer ListIdentities ListIdentitiesResponse where
+     type ResponseMetadata ListIdentitiesResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+          let ids = cursor $// laxElement "Identities" &/ elContent "member"
+          return $ ListIdentitiesResponse ids
+diff --git a/Aws/Ses/Commands/SendRawEmail.hs b/Aws/Ses/Commands/SendRawEmail.hs
+index e7350d1..284aac6 100644
+--- a/Aws/Ses/Commands/SendRawEmail.hs
++++ b/Aws/Ses/Commands/SendRawEmail.hs
+@@ -45,7 +45,7 @@ data SendRawEmailResponse =
+ 
+ instance ResponseConsumer SendRawEmail SendRawEmailResponse where
+     type ResponseMetadata SendRawEmailResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         messageId <- force "MessageId not found" $ cursor $// elContent "MessageId"
+         return (SendRawEmailResponse messageId)
+diff --git a/Aws/Ses/Commands/SetIdentityDkimEnabled.hs b/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
+index 537b7a4..1e43c43 100644
+--- a/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
++++ b/Aws/Ses/Commands/SetIdentityDkimEnabled.hs
+@@ -32,7 +32,8 @@ data SetIdentityDkimEnabledResponse = SetIdentityDkimEnabledResponse
+ 
+ instance ResponseConsumer SetIdentityDkimEnabled SetIdentityDkimEnabledResponse where
+     type ResponseMetadata SetIdentityDkimEnabledResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityDkimEnabledResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityDkimEnabledResponse
+ 
+ instance Transaction SetIdentityDkimEnabled SetIdentityDkimEnabledResponse
+ 
+diff --git a/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs b/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
+index 93106aa..a681208 100644
+--- a/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
++++ b/Aws/Ses/Commands/SetIdentityFeedbackForwardingEnabled.hs
+@@ -34,7 +34,8 @@ data SetIdentityFeedbackForwardingEnabledResponse = SetIdentityFeedbackForwardin
+ 
+ instance ResponseConsumer SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse where
+     type ResponseMetadata SetIdentityFeedbackForwardingEnabledResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityFeedbackForwardingEnabledResponse 
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityFeedbackForwardingEnabledResponse
+ 
+ instance Transaction SetIdentityFeedbackForwardingEnabled SetIdentityFeedbackForwardingEnabledResponse
+ 
+diff --git a/Aws/Ses/Commands/SetIdentityNotificationTopic.hs b/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
+index a740fe0..4095b10 100644
+--- a/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
++++ b/Aws/Ses/Commands/SetIdentityNotificationTopic.hs
+@@ -48,7 +48,8 @@ data SetIdentityNotificationTopicResponse = SetIdentityNotificationTopicResponse
+ 
+ instance ResponseConsumer SetIdentityNotificationTopic SetIdentityNotificationTopicResponse where
+     type ResponseMetadata SetIdentityNotificationTopicResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return SetIdentityNotificationTopicResponse 
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return SetIdentityNotificationTopicResponse
+ 
+ instance Transaction SetIdentityNotificationTopic SetIdentityNotificationTopicResponse
+ 
+diff --git a/Aws/Ses/Commands/VerifyDomainDkim.hs b/Aws/Ses/Commands/VerifyDomainDkim.hs
+index acc811f..b09b5ef 100644
+--- a/Aws/Ses/Commands/VerifyDomainDkim.hs
++++ b/Aws/Ses/Commands/VerifyDomainDkim.hs
+@@ -28,7 +28,7 @@ data VerifyDomainDkimResponse = VerifyDomainDkimResponse [Text]
+ 
+ instance ResponseConsumer VerifyDomainDkim VerifyDomainDkimResponse where
+     type ResponseMetadata VerifyDomainDkimResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         let tokens = cursor $// laxElement "DkimTokens" &/ elContent "member"
+         return (VerifyDomainDkimResponse tokens)
+diff --git a/Aws/Ses/Commands/VerifyDomainIdentity.hs b/Aws/Ses/Commands/VerifyDomainIdentity.hs
+index 2efd728..4566c88 100644
+--- a/Aws/Ses/Commands/VerifyDomainIdentity.hs
++++ b/Aws/Ses/Commands/VerifyDomainIdentity.hs
+@@ -29,7 +29,7 @@ data VerifyDomainIdentityResponse = VerifyDomainIdentityResponse Text
+ 
+ instance ResponseConsumer VerifyDomainIdentity VerifyDomainIdentityResponse where
+     type ResponseMetadata VerifyDomainIdentityResponse = SesMetadata
+-    responseConsumer _ =
++    responseConsumer _ _ =
+       sesResponseConsumer $ \cursor -> do
+         token <- force "Verification token not found" $ cursor $// elContent "VerificationToken"
+         return (VerifyDomainIdentityResponse token)
+diff --git a/Aws/Ses/Commands/VerifyEmailIdentity.hs b/Aws/Ses/Commands/VerifyEmailIdentity.hs
+index 3a35cea..8114113 100644
+--- a/Aws/Ses/Commands/VerifyEmailIdentity.hs
++++ b/Aws/Ses/Commands/VerifyEmailIdentity.hs
+@@ -29,7 +29,8 @@ data VerifyEmailIdentityResponse = VerifyEmailIdentityResponse
+ 
+ instance ResponseConsumer VerifyEmailIdentity VerifyEmailIdentityResponse where
+     type ResponseMetadata VerifyEmailIdentityResponse = SesMetadata
+-    responseConsumer _ = sesResponseConsumer $ \_ -> return VerifyEmailIdentityResponse
++    responseConsumer _ _
++        = sesResponseConsumer $ \_ -> return VerifyEmailIdentityResponse
+ 
+ 
+ instance Transaction VerifyEmailIdentity VerifyEmailIdentityResponse where
+diff --git a/Aws/SimpleDb/Commands/Attributes.hs b/Aws/SimpleDb/Commands/Attributes.hs
+index dedd0d9..e929318 100644
+--- a/Aws/SimpleDb/Commands/Attributes.hs
++++ b/Aws/SimpleDb/Commands/Attributes.hs
+@@ -39,7 +39,8 @@ instance SignQuery GetAttributes where
+ 
+ instance ResponseConsumer r GetAttributesResponse where
+     type ResponseMetadata GetAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _
++        = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "GetAttributesResponse" cursor
+                 attributes <- sequence $ cursor $// Cu.laxElement "Attribute" &| readAttribute
+@@ -83,7 +84,8 @@ instance SignQuery PutAttributes where
+ 
+ instance ResponseConsumer r PutAttributesResponse where
+     type ResponseMetadata PutAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType PutAttributesResponse "PutAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType PutAttributesResponse "PutAttributesResponse"
+ 
+ instance Transaction PutAttributes PutAttributesResponse
+ 
+@@ -123,7 +125,8 @@ instance SignQuery DeleteAttributes where
+ 
+ instance ResponseConsumer r DeleteAttributesResponse where
+     type ResponseMetadata DeleteAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType DeleteAttributesResponse "DeleteAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType DeleteAttributesResponse "DeleteAttributesResponse"
+ 
+ instance Transaction DeleteAttributes DeleteAttributesResponse
+ 
+@@ -156,7 +159,8 @@ instance SignQuery BatchPutAttributes where
+ 
+ instance ResponseConsumer r BatchPutAttributesResponse where
+     type ResponseMetadata BatchPutAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType BatchPutAttributesResponse "BatchPutAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType BatchPutAttributesResponse "BatchPutAttributesResponse"
+ 
+ instance Transaction BatchPutAttributes BatchPutAttributesResponse
+ 
+@@ -189,10 +193,11 @@ instance SignQuery BatchDeleteAttributes where
+ 
+ instance ResponseConsumer r BatchDeleteAttributesResponse where
+     type ResponseMetadata BatchDeleteAttributesResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType BatchDeleteAttributesResponse "BatchDeleteAttributesResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType BatchDeleteAttributesResponse "BatchDeleteAttributesResponse"
+ 
+ instance Transaction BatchDeleteAttributes BatchDeleteAttributesResponse
+ 
+ instance AsMemoryResponse BatchDeleteAttributesResponse where
+     type MemoryResponse BatchDeleteAttributesResponse = BatchDeleteAttributesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/SimpleDb/Commands/Domain.hs b/Aws/SimpleDb/Commands/Domain.hs
+index 87f8dae..107eae9 100644
+--- a/Aws/SimpleDb/Commands/Domain.hs
++++ b/Aws/SimpleDb/Commands/Domain.hs
+@@ -30,7 +30,8 @@ instance SignQuery CreateDomain where
+ 
+ instance ResponseConsumer r CreateDomainResponse where
+     type ResponseMetadata CreateDomainResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType CreateDomainResponse "CreateDomainResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType CreateDomainResponse "CreateDomainResponse"
+ 
+ instance Transaction CreateDomain CreateDomainResponse
+ 
+@@ -58,7 +59,8 @@ instance SignQuery DeleteDomain where
+ 
+ instance ResponseConsumer r DeleteDomainResponse where
+     type ResponseMetadata DeleteDomainResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType DeleteDomainResponse "DeleteDomainResponse"
++    responseConsumer _ _
++        = sdbResponseConsumer $ sdbCheckResponseType DeleteDomainResponse "DeleteDomainResponse"
+ 
+ instance Transaction DeleteDomain DeleteDomainResponse
+ 
+@@ -95,7 +97,8 @@ instance SignQuery DomainMetadata where
+ instance ResponseConsumer r DomainMetadataResponse where
+     type ResponseMetadata DomainMetadataResponse = SdbMetadata
+ 
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _
++        = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "DomainMetadataResponse" cursor
+                 dmrTimestamp <- forceM "Timestamp expected" $ cursor $// elCont "Timestamp" &| (fmap posixSecondsToUTCTime . readInt)
+@@ -141,7 +144,7 @@ instance SignQuery ListDomains where
+ 
+ instance ResponseConsumer r ListDomainsResponse where
+     type ResponseMetadata ListDomainsResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _ = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "ListDomainsResponse" cursor
+                 let names = cursor $// elContent "DomainName"
+diff --git a/Aws/SimpleDb/Commands/Select.hs b/Aws/SimpleDb/Commands/Select.hs
+index ea12f68..9dd7397 100644
+--- a/Aws/SimpleDb/Commands/Select.hs
++++ b/Aws/SimpleDb/Commands/Select.hs
+@@ -42,7 +42,7 @@ instance SignQuery Select where
+ 
+ instance ResponseConsumer r SelectResponse where
+     type ResponseMetadata SelectResponse = SdbMetadata
+-    responseConsumer _ = sdbResponseConsumer parse
++    responseConsumer _ _ = sdbResponseConsumer parse
+         where parse cursor = do
+                 sdbCheckResponseType () "SelectResponse" cursor
+                 items <- sequence $ cursor $// Cu.laxElement "Item" &| readItem
+diff --git a/Aws/Sqs/Commands/Message.hs b/Aws/Sqs/Commands/Message.hs
+index 9a11801..556c71e 100644
+--- a/Aws/Sqs/Commands/Message.hs
++++ b/Aws/Sqs/Commands/Message.hs
+@@ -216,7 +216,7 @@ data SendMessageResponse = SendMessageResponse
+ 
+ instance ResponseConsumer r SendMessageResponse where
+     type ResponseMetadata SendMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = SendMessageResponse
+             <$> force "Missing MD5 Signature"
+@@ -287,7 +287,7 @@ data DeleteMessageResponse = DeleteMessageResponse {}
+ 
+ instance ResponseConsumer r DeleteMessageResponse where
+     type ResponseMetadata DeleteMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = return DeleteMessageResponse {}
+ 
+@@ -559,7 +559,7 @@ formatUserMessageAttributes attrs = case attrs of
+ 
+ instance ResponseConsumer r ReceiveMessageResponse where
+     type ResponseMetadata ReceiveMessageResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+             result <- force "Missing ReceiveMessageResult"
+@@ -660,7 +660,7 @@ data ChangeMessageVisibilityResponse = ChangeMessageVisibilityResponse {}
+ 
+ instance ResponseConsumer r ChangeMessageVisibilityResponse where
+     type ResponseMetadata ChangeMessageVisibilityResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = return ChangeMessageVisibilityResponse {}
+ 
+diff --git a/Aws/Sqs/Commands/Permission.hs b/Aws/Sqs/Commands/Permission.hs
+index f2e4a90..0bfdc54 100644
+--- a/Aws/Sqs/Commands/Permission.hs
++++ b/Aws/Sqs/Commands/Permission.hs
+@@ -25,7 +25,7 @@ formatPermissions perms =
+ 
+ instance ResponseConsumer r AddPermissionResponse where
+     type ResponseMetadata AddPermissionResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+        where
+          parse _ = do
+            return AddPermissionResponse {}
+@@ -55,7 +55,7 @@ data RemovePermissionResponse = RemovePermissionResponse
+ 
+ instance ResponseConsumer r RemovePermissionResponse where
+     type ResponseMetadata RemovePermissionResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where 
+         parse _ = do
+           return RemovePermissionResponse {}  
+@@ -72,4 +72,4 @@ instance Transaction RemovePermission RemovePermissionResponse
+ 
+ instance AsMemoryResponse RemovePermissionResponse where
+     type MemoryResponse RemovePermissionResponse = RemovePermissionResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/Sqs/Commands/Queue.hs b/Aws/Sqs/Commands/Queue.hs
+index d6c9ab7..ff61ae9 100644
+--- a/Aws/Sqs/Commands/Queue.hs
++++ b/Aws/Sqs/Commands/Queue.hs
+@@ -23,7 +23,7 @@ data CreateQueueResponse = CreateQueueResponse {
+ 
+ instance ResponseConsumer r CreateQueueResponse where
+     type ResponseMetadata CreateQueueResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+           url <- force "Missing Queue Url" $ el $// Cu.laxElement "QueueUrl" &/ Cu.content
+@@ -55,7 +55,7 @@ data DeleteQueueResponse = DeleteQueueResponse
+ 
+ instance ResponseConsumer r DeleteQueueResponse where
+     type ResponseMetadata DeleteQueueResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse _ = do return DeleteQueueResponse{}
+           
+@@ -82,7 +82,7 @@ data ListQueuesResponse = ListQueuesResponse {
+ 
+ instance ResponseConsumer r ListQueuesResponse where
+     type ResponseMetadata ListQueuesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+             let queues = el $// Cu.laxElement "QueueUrl" &/ Cu.content
+@@ -102,4 +102,4 @@ instance Transaction ListQueues ListQueuesResponse
+ 
+ instance AsMemoryResponse ListQueuesResponse where
+     type MemoryResponse ListQueuesResponse = ListQueuesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+diff --git a/Aws/Sqs/Commands/QueueAttributes.hs b/Aws/Sqs/Commands/QueueAttributes.hs
+index aaa97cc..54f57fd 100644
+--- a/Aws/Sqs/Commands/QueueAttributes.hs
++++ b/Aws/Sqs/Commands/QueueAttributes.hs
+@@ -27,7 +27,7 @@ parseAttributes el = do
+ 
+ instance ResponseConsumer r GetQueueAttributesResponse where
+     type ResponseMetadata GetQueueAttributesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where
+         parse el = do
+           let attributes = concat $ el $// Cu.laxElement "Attribute" &| parseAttributes
+@@ -64,7 +64,7 @@ data SetQueueAttributesResponse = SetQueueAttributesResponse{
+ 
+ instance ResponseConsumer r SetQueueAttributesResponse where
+     type ResponseMetadata SetQueueAttributesResponse = SqsMetadata
+-    responseConsumer _ = sqsXmlResponseConsumer parse
++    responseConsumer _ _ = sqsXmlResponseConsumer parse
+       where 
+         parse _ = do
+           return SetQueueAttributesResponse {}
+@@ -82,4 +82,4 @@ instance Transaction SetQueueAttributes SetQueueAttributesResponse
+ 
+ instance AsMemoryResponse SetQueueAttributesResponse where
+     type MemoryResponse SetQueueAttributesResponse = SetQueueAttributesResponse
+-    loadToMemory = return
+\ No newline at end of file
++    loadToMemory = return
+
+From 379b1d18e7340efacfb0a1753e0c25a7464ace2b Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:56:57 -0400
+Subject: [PATCH 2/8] Silence a number of trivial warnings
+
+These include,
+  * Redundant imports
+  * Defaulting warnings
+  * Duplicate exports
+---
+ Aws/Aws.hs                          | 1 +
+ Aws/Core.hs                         | 1 +
+ Aws/DynamoDb/Commands/DeleteItem.hs | 1 +
+ Aws/DynamoDb/Commands/GetItem.hs    | 1 +
+ Aws/DynamoDb/Commands/PutItem.hs    | 1 +
+ Aws/DynamoDb/Commands/Table.hs      | 1 +
+ Aws/DynamoDb/Commands/UpdateItem.hs | 2 +-
+ Aws/DynamoDb/Core.hs                | 3 ++-
+ Aws/Ec2/InstanceMetadata.hs         | 1 +
+ Aws/Iam/Commands/CreateAccessKey.hs | 1 +
+ Aws/Iam/Commands/CreateUser.hs      | 1 +
+ Aws/Iam/Commands/DeleteAccessKey.hs | 1 +
+ Aws/Iam/Commands/GetUser.hs         | 1 +
+ Aws/Iam/Commands/GetUserPolicy.hs   | 1 +
+ Aws/Iam/Commands/ListAccessKeys.hs  | 1 +
+ Aws/Iam/Commands/ListMfaDevices.hs  | 1 +
+ Aws/Iam/Commands/ListUsers.hs       | 1 +
+ Aws/Iam/Commands/UpdateAccessKey.hs | 1 +
+ Aws/Iam/Commands/UpdateUser.hs      | 1 +
+ Aws/Iam/Internal.hs                 | 1 +
+ Aws/S3/Commands/CopyObject.hs       | 1 +
+ Aws/S3/Commands/DeleteBucket.hs     | 1 -
+ Aws/S3/Commands/GetBucket.hs        | 1 +
+ Aws/S3/Commands/GetObject.hs        | 1 +
+ Aws/S3/Commands/HeadObject.hs       | 1 +
+ Aws/S3/Commands/Multipart.hs        | 1 +
+ Aws/S3/Commands/PutObject.hs        | 1 +
+ Aws/S3/Core.hs                      | 1 +
+ Aws/Ses/Core.hs                     | 1 +
+ Aws/SimpleDb/Commands/Attributes.hs | 1 +
+ Aws/SimpleDb/Commands/Domain.hs     | 1 +
+ Aws/SimpleDb/Commands/Select.hs     | 1 +
+ Aws/SimpleDb/Core.hs                | 1 +
+ Aws/Sqs/Commands/Message.hs         | 1 +
+ Aws/Sqs/Commands/Queue.hs           | 1 +
+ Aws/Sqs/Core.hs                     | 1 +
+ 36 files changed, 36 insertions(+), 3 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 5fad82e..2f749d7 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -52,6 +52,7 @@ import qualified Data.Text.Encoding           as T
+ import qualified Data.Text.IO                 as T
+ import qualified Network.HTTP.Conduit         as HTTP
+ import           System.IO                    (stderr)
++import           Prelude
+ 
+ -- | The severity of a log message, in rising order.
+ data LogLevel
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index ec5d033..89a78f7 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -138,6 +138,7 @@ import           System.Locale
+ import qualified Text.XML                 as XML
+ import qualified Text.XML.Cursor          as Cu
+ import           Text.XML.Cursor          hiding (force, forceM)
++import           Prelude
+ -------------------------------------------------------------------------------
+ 
+ -- | Types that can be logged (textually).
+diff --git a/Aws/DynamoDb/Commands/DeleteItem.hs b/Aws/DynamoDb/Commands/DeleteItem.hs
+index 7f47e3a..9a4a26d 100644
+--- a/Aws/DynamoDb/Commands/DeleteItem.hs
++++ b/Aws/DynamoDb/Commands/DeleteItem.hs
+@@ -26,6 +26,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/GetItem.hs b/Aws/DynamoDb/Commands/GetItem.hs
+index 85bbf9f..1859938 100644
+--- a/Aws/DynamoDb/Commands/GetItem.hs
++++ b/Aws/DynamoDb/Commands/GetItem.hs
+@@ -19,6 +19,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/PutItem.hs b/Aws/DynamoDb/Commands/PutItem.hs
+index 0ad51b1..28478d7 100644
+--- a/Aws/DynamoDb/Commands/PutItem.hs
++++ b/Aws/DynamoDb/Commands/PutItem.hs
+@@ -26,6 +26,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/Table.hs b/Aws/DynamoDb/Commands/Table.hs
+index 59b8b44..2c06c06 100644
+--- a/Aws/DynamoDb/Commands/Table.hs
++++ b/Aws/DynamoDb/Commands/Table.hs
+@@ -44,6 +44,7 @@ import           Data.Time.Clock.POSIX
+ import           Data.Typeable
+ import qualified Data.Vector           as V
+ import           GHC.Generics          (Generic)
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Commands/UpdateItem.hs b/Aws/DynamoDb/Commands/UpdateItem.hs
+index 84b46a5..0d94a59 100644
+--- a/Aws/DynamoDb/Commands/UpdateItem.hs
++++ b/Aws/DynamoDb/Commands/UpdateItem.hs
+@@ -25,7 +25,6 @@ module Aws.DynamoDb.Commands.UpdateItem
+     , AttributeUpdate(..)
+     , au
+     , UpdateAction(..)
+-    , UpdateItem(..)
+     , UpdateItemResponse(..)
+     ) where
+ 
+@@ -34,6 +33,7 @@ import           Control.Applicative
+ import           Data.Aeson
+ import           Data.Default
+ import qualified Data.Text           as T
++import           Prelude
+ -------------------------------------------------------------------------------
+ import           Aws.Core
+ import           Aws.DynamoDb.Core
+diff --git a/Aws/DynamoDb/Core.hs b/Aws/DynamoDb/Core.hs
+index 67fd84b..d9e7dda 100644
+--- a/Aws/DynamoDb/Core.hs
++++ b/Aws/DynamoDb/Core.hs
+@@ -399,7 +399,7 @@ instance DynVal UTCTime where
+ 
+ -------------------------------------------------------------------------------
+ pico :: Rational
+-pico = toRational $ 10 ^ (12 :: Integer)
++pico = toRational $ (10 :: Integer) ^ (12 :: Integer)
+ 
+ 
+ -------------------------------------------------------------------------------
+@@ -1142,6 +1142,7 @@ data QuerySelect
+ instance Default QuerySelect where def = SelectAll
+ 
+ -------------------------------------------------------------------------------
++querySelectJson :: KeyValue t => QuerySelect -> [t]
+ querySelectJson (SelectSpecific as) =
+     [ "Select" .= String "SPECIFIC_ATTRIBUTES"
+     , "AttributesToGet" .= as]
+diff --git a/Aws/Ec2/InstanceMetadata.hs b/Aws/Ec2/InstanceMetadata.hs
+index 0166809..b1547a1 100644
+--- a/Aws/Ec2/InstanceMetadata.hs
++++ b/Aws/Ec2/InstanceMetadata.hs
+@@ -8,6 +8,7 @@ import qualified Data.ByteString.Lazy.Char8 as B8
+ import           Data.ByteString.Lazy.UTF8 as BU
+ import           Data.Typeable
+ import qualified Network.HTTP.Conduit as HTTP
++import           Prelude
+ 
+ data InstanceMetadataException
+   = MetadataNotFound String
+diff --git a/Aws/Iam/Commands/CreateAccessKey.hs b/Aws/Iam/Commands/CreateAccessKey.hs
+index 20cb071..64b6e4a 100644
+--- a/Aws/Iam/Commands/CreateAccessKey.hs
++++ b/Aws/Iam/Commands/CreateAccessKey.hs
+@@ -16,6 +16,7 @@ import           Data.Text           (Text)
+ import qualified Data.Text           as Text
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (($//))
+ 
+ -- | Creates a new AWS secret access key and corresponding AWS access key ID
+diff --git a/Aws/Iam/Commands/CreateUser.hs b/Aws/Iam/Commands/CreateUser.hs
+index c3a0aa1..482eda7 100644
+--- a/Aws/Iam/Commands/CreateUser.hs
++++ b/Aws/Iam/Commands/CreateUser.hs
+@@ -14,6 +14,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Creates a new user.
+ --
+diff --git a/Aws/Iam/Commands/DeleteAccessKey.hs b/Aws/Iam/Commands/DeleteAccessKey.hs
+index b4e2084..605b167 100644
+--- a/Aws/Iam/Commands/DeleteAccessKey.hs
++++ b/Aws/Iam/Commands/DeleteAccessKey.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Deletes the access key associated with the specified user.
+ --
+diff --git a/Aws/Iam/Commands/GetUser.hs b/Aws/Iam/Commands/GetUser.hs
+index 67c46b3..aa8f5c3 100644
+--- a/Aws/Iam/Commands/GetUser.hs
++++ b/Aws/Iam/Commands/GetUser.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Retreives information about the given user.
+ --
+diff --git a/Aws/Iam/Commands/GetUserPolicy.hs b/Aws/Iam/Commands/GetUserPolicy.hs
+index e9e33d2..4e60f5a 100644
+--- a/Aws/Iam/Commands/GetUserPolicy.hs
++++ b/Aws/Iam/Commands/GetUserPolicy.hs
+@@ -16,6 +16,7 @@ import qualified Data.Text.Encoding  as Text
+ import           Data.Typeable
+ import qualified Network.HTTP.Types  as HTTP
+ import           Text.XML.Cursor     (($//))
++import           Prelude
+ 
+ -- | Retreives the specified policy document for the specified user.
+ --
+diff --git a/Aws/Iam/Commands/ListAccessKeys.hs b/Aws/Iam/Commands/ListAccessKeys.hs
+index 0e247ab..87e4920 100644
+--- a/Aws/Iam/Commands/ListAccessKeys.hs
++++ b/Aws/Iam/Commands/ListAccessKeys.hs
+@@ -14,6 +14,7 @@ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (laxElement, ($/), ($//), (&|))
+ 
+ -- | Returns the access keys associated with the specified user.
+diff --git a/Aws/Iam/Commands/ListMfaDevices.hs b/Aws/Iam/Commands/ListMfaDevices.hs
+index 7bad6f2..f03caae 100644
+--- a/Aws/Iam/Commands/ListMfaDevices.hs
++++ b/Aws/Iam/Commands/ListMfaDevices.hs
+@@ -12,6 +12,7 @@ import Aws.Iam.Internal
+ import Control.Applicative
+ import Data.Text (Text)
+ import Data.Typeable
++import Prelude
+ import Text.XML.Cursor (laxElement, ($//), (&|))
+ -- | Lists the MFA devices. If the request includes the user name,
+ -- then this action lists all the MFA devices associated with the
+diff --git a/Aws/Iam/Commands/ListUsers.hs b/Aws/Iam/Commands/ListUsers.hs
+index 01eff2a..461048b 100644
+--- a/Aws/Iam/Commands/ListUsers.hs
++++ b/Aws/Iam/Commands/ListUsers.hs
+@@ -14,6 +14,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ import           Text.XML.Cursor     (laxElement, ($//), (&|))
+ 
+ -- | Lists users that have the specified path prefix.
+diff --git a/Aws/Iam/Commands/UpdateAccessKey.hs b/Aws/Iam/Commands/UpdateAccessKey.hs
+index ba54971..0b079dd 100644
+--- a/Aws/Iam/Commands/UpdateAccessKey.hs
++++ b/Aws/Iam/Commands/UpdateAccessKey.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Changes the status of the specified access key.
+ --
+diff --git a/Aws/Iam/Commands/UpdateUser.hs b/Aws/Iam/Commands/UpdateUser.hs
+index 84b27eb..1b75497 100644
+--- a/Aws/Iam/Commands/UpdateUser.hs
++++ b/Aws/Iam/Commands/UpdateUser.hs
+@@ -13,6 +13,7 @@ import           Aws.Iam.Internal
+ import           Control.Applicative
+ import           Data.Text           (Text)
+ import           Data.Typeable
++import           Prelude
+ 
+ -- | Updates the name and/or path of the specified user.
+ --
+diff --git a/Aws/Iam/Internal.hs b/Aws/Iam/Internal.hs
+index f6522bd..87fc6a5 100644
+--- a/Aws/Iam/Internal.hs
++++ b/Aws/Iam/Internal.hs
+@@ -20,6 +20,7 @@ import           Control.Monad.Trans.Resource (MonadThrow)
+ import           Data.ByteString     (ByteString)
+ import           Data.Maybe
+ import           Data.Monoid         ((<>))
++import           Prelude
+ import           Data.Text           (Text)
+ import qualified Data.Text           as Text
+ import qualified Data.Text.Encoding  as Text
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index a748186..a26fb41 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -20,6 +20,7 @@ import           Data.Time.Format
+ #else
+ import           System.Locale
+ #endif
++import           Prelude
+ 
+ data CopyMetadataDirective = CopyMetadata | ReplaceMetadata [(T.Text,T.Text)]
+   deriving (Show)
+diff --git a/Aws/S3/Commands/DeleteBucket.hs b/Aws/S3/Commands/DeleteBucket.hs
+index c96acaa..e35f3c3 100644
+--- a/Aws/S3/Commands/DeleteBucket.hs
++++ b/Aws/S3/Commands/DeleteBucket.hs
+@@ -4,7 +4,6 @@ where
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Data.ByteString.Char8      ({- IsString -})
+-import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+ 
+ data DeleteBucket = DeleteBucket { dbBucket :: Bucket }
+diff --git a/Aws/S3/Commands/GetBucket.hs b/Aws/S3/Commands/GetBucket.hs
+index 0d24879..6581d05 100644
+--- a/Aws/S3/Commands/GetBucket.hs
++++ b/Aws/S3/Commands/GetBucket.hs
+@@ -11,6 +11,7 @@ import qualified Data.ByteString.Char8 as B8
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
+ import qualified Data.Traversable
++import           Prelude
+ import qualified Network.HTTP.Types    as HTTP
+ import qualified Text.XML.Cursor       as Cu
+ 
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 5a60611..62da4a6 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -13,6 +13,7 @@ import qualified Data.Conduit.List     as CL
+ import           Data.Maybe
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ 
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index dbc9cc0..f13c1d8 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -10,6 +10,7 @@ import qualified Data.ByteString.Char8 as B8
+ import           Data.Maybe
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ 
+diff --git a/Aws/S3/Commands/Multipart.hs b/Aws/S3/Commands/Multipart.hs
+index f70524c..6a45b67 100644
+--- a/Aws/S3/Commands/Multipart.hs
++++ b/Aws/S3/Commands/Multipart.hs
+@@ -22,6 +22,7 @@ import qualified Data.Text.Encoding    as T
+ import qualified Network.HTTP.Conduit  as HTTP
+ import qualified Network.HTTP.Types    as HTTP
+ import qualified Text.XML              as XML
++import           Prelude
+ 
+ {-
+ Aws supports following 6 api for Multipart-Upload.
+diff --git a/Aws/S3/Commands/PutObject.hs b/Aws/S3/Commands/PutObject.hs
+index 9f67cd5..d4513c0 100644
+--- a/Aws/S3/Commands/PutObject.hs
++++ b/Aws/S3/Commands/PutObject.hs
+@@ -13,6 +13,7 @@ import qualified Data.ByteString.Char8 as B
+ import qualified Data.CaseInsensitive  as CI
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
++import           Prelude
+ import qualified Network.HTTP.Conduit  as HTTP
+ 
+ data PutObject = PutObject {
+diff --git a/Aws/S3/Core.hs b/Aws/S3/Core.hs
+index 40af484..6c20e35 100644
+--- a/Aws/S3/Core.hs
++++ b/Aws/S3/Core.hs
+@@ -38,6 +38,7 @@ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import qualified Text.XML                       as XML
+ import qualified Text.XML.Cursor                as Cu
++import           Prelude
+ 
+ data S3Authorization
+     = S3AuthorizationHeader
+diff --git a/Aws/Ses/Core.hs b/Aws/Ses/Core.hs
+index ed474b2..aa68f1b 100644
+--- a/Aws/Ses/Core.hs
++++ b/Aws/Ses/Core.hs
+@@ -36,6 +36,7 @@ import           Data.Monoid
+ import           Data.Text                      (Text)
+ import qualified Data.Text.Encoding             as TE
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import           Text.XML.Cursor                (($/), ($//))
+diff --git a/Aws/SimpleDb/Commands/Attributes.hs b/Aws/SimpleDb/Commands/Attributes.hs
+index e929318..179eb2f 100644
+--- a/Aws/SimpleDb/Commands/Attributes.hs
++++ b/Aws/SimpleDb/Commands/Attributes.hs
+@@ -5,6 +5,7 @@ import           Aws.SimpleDb.Core
+ import           Control.Applicative
+ import           Control.Monad
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor            (($//), (&|))
+ import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+diff --git a/Aws/SimpleDb/Commands/Domain.hs b/Aws/SimpleDb/Commands/Domain.hs
+index 107eae9..e9eb47c 100644
+--- a/Aws/SimpleDb/Commands/Domain.hs
++++ b/Aws/SimpleDb/Commands/Domain.hs
+@@ -6,6 +6,7 @@ import           Control.Applicative
+ import           Data.Maybe
+ import           Data.Time
+ import           Data.Time.Clock.POSIX
++import           Prelude
+ import           Text.XML.Cursor       (($//), (&|))
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as T
+diff --git a/Aws/SimpleDb/Commands/Select.hs b/Aws/SimpleDb/Commands/Select.hs
+index 9dd7397..804388b 100644
+--- a/Aws/SimpleDb/Commands/Select.hs
++++ b/Aws/SimpleDb/Commands/Select.hs
+@@ -6,6 +6,7 @@ import           Aws.SimpleDb.Core
+ import           Control.Applicative
+ import           Control.Monad
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor            (($//), (&|))
+ import qualified Data.Text                  as T
+ import qualified Data.Text.Encoding         as T
+diff --git a/Aws/SimpleDb/Core.hs b/Aws/SimpleDb/Core.hs
+index 7a9c483..6486fe3 100644
+--- a/Aws/SimpleDb/Core.hs
++++ b/Aws/SimpleDb/Core.hs
+@@ -15,6 +15,7 @@ import           Data.Monoid
+ import qualified Data.Text                      as T
+ import qualified Data.Text.Encoding             as T
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ import           Text.XML.Cursor                (($|), ($/), ($//), (&|))
+diff --git a/Aws/Sqs/Commands/Message.hs b/Aws/Sqs/Commands/Message.hs
+index 556c71e..af75fbf 100644
+--- a/Aws/Sqs/Commands/Message.hs
++++ b/Aws/Sqs/Commands/Message.hs
+@@ -39,6 +39,7 @@ import Data.Scientific
+ import qualified Network.HTTP.Types as HTTP
+ import Text.Read (readEither)
+ import qualified Text.XML.Cursor as Cu
++import Prelude
+ 
+ -- -------------------------------------------------------------------------- --
+ -- User Message Attributes
+diff --git a/Aws/Sqs/Commands/Queue.hs b/Aws/Sqs/Commands/Queue.hs
+index ff61ae9..71be227 100644
+--- a/Aws/Sqs/Commands/Queue.hs
++++ b/Aws/Sqs/Commands/Queue.hs
+@@ -5,6 +5,7 @@ import           Aws.Core
+ import           Aws.Sqs.Core
+ import           Control.Applicative
+ import           Data.Maybe
++import           Prelude
+ import           Text.XML.Cursor       (($//), (&/))
+ import qualified Data.Text             as T
+ import qualified Data.Text.Encoding    as TE
+diff --git a/Aws/Sqs/Core.hs b/Aws/Sqs/Core.hs
+index dde576f..7d2aee0 100644
+--- a/Aws/Sqs/Core.hs
++++ b/Aws/Sqs/Core.hs
+@@ -22,6 +22,7 @@ import qualified Data.Text.Encoding             as T
+ import qualified Data.Text.Encoding             as TE
+ import           Data.Time
+ import           Data.Typeable
++import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+ #if MIN_VERSION_time(1,5,0)
+
+From 64fa3fd3dd48a02b75328c6d886d00b07bab7ffc Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:59:32 -0400
+Subject: [PATCH 3/8] Use HTTP.newManager instead of deprecated
+ HTTP.withManager
+
+---
+ Aws/Aws.hs  | 6 +++---
+ Aws/Core.hs | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index 2f749d7..cc4a440 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -190,9 +190,9 @@ simpleAws :: (Transaction r a, AsMemoryResponse a, MonadIO io)
+             -> ServiceConfiguration r NormalQuery
+             -> r
+             -> io (MemoryResponse a)
+-simpleAws cfg scfg request
+-  = liftIO $ HTTP.withManager $ \manager ->
+-      loadToMemory =<< readResponseIO =<< aws cfg scfg manager request
++simpleAws cfg scfg request = liftIO $ runResourceT $ do
++    manager <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings
++    loadToMemory =<< readResponseIO =<< aws cfg scfg manager request
+ 
+ -- | Run an AWS transaction, without enforcing that response and request type form a valid transaction pair.
+ --
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 89a78f7..35a26c9 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -319,8 +319,8 @@ loadCredentialsFromEnv = liftIO $ do
+   Traversable.sequence $ makeCredentials' <$> keyID <*> secret
+ 
+ loadCredentialsFromInstanceMetadata :: MonadIO io => io (Maybe Credentials)
+-loadCredentialsFromInstanceMetadata = liftIO $ HTTP.withManager $ \mgr ->
+-  do
++loadCredentialsFromInstanceMetadata = do
++    mgr <- liftIO $ HTTP.newManager HTTP.tlsManagerSettings
+     -- check if the path is routable
+     avail <- liftIO $ hostAvailable "169.254.169.254"
+     if not avail
+
+From 6896a436d0cd61c54808f46046c2d77bfd98bf58 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:00:12 -0400
+Subject: [PATCH 4/8] Aws.DynamicDb.Core: Remove redundant Typeable constraint
+
+---
+ Aws/DynamoDb/Core.hs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Aws/DynamoDb/Core.hs b/Aws/DynamoDb/Core.hs
+index d9e7dda..a3698b2 100644
+--- a/Aws/DynamoDb/Core.hs
++++ b/Aws/DynamoDb/Core.hs
+@@ -1339,7 +1339,7 @@ getAttr k m = do
+ -- | Parse attribute if it's present in the 'Item'. Fail if attribute
+ -- is present but conversion fails.
+ getAttr'
+-    :: forall a. (Typeable a, DynVal a)
++    :: forall a. (DynVal a)
+     => T.Text
+     -- ^ Attribute name
+     -> Item
+
+From 73552eaa1aba1d629d942a452424ffc855780619 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:06:14 -0400
+Subject: [PATCH 5/8] Drop support for time < 1.4
+
+This allows us to easily silence a number of redundant import warnings
+and drop some CPP.
+---
+ Aws/Core.hs                   | 4 +---
+ Aws/Iam/Core.hs               | 4 +---
+ Aws/S3/Commands/CopyObject.hs | 4 +---
+ Aws/S3/Core.hs                | 4 +---
+ Aws/Sqs/Core.hs               | 4 +---
+ aws.cabal                     | 2 +-
+ 6 files changed, 6 insertions(+), 16 deletions(-)
+
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index 35a26c9..b81820a 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -130,9 +130,7 @@ import qualified Network.HTTP.Types       as HTTP
+ import           System.Directory
+ import           System.Environment
+ import           System.FilePath          ((</>))
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import qualified Text.XML                 as XML
+diff --git a/Aws/Iam/Core.hs b/Aws/Iam/Core.hs
+index 0152799..ae9e523 100644
+--- a/Aws/Iam/Core.hs
++++ b/Aws/Iam/Core.hs
+@@ -35,9 +35,7 @@ import           Data.Time
+ import           Data.Typeable
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Text.XML.Cursor                (($//))
+diff --git a/Aws/S3/Commands/CopyObject.hs b/Aws/S3/Commands/CopyObject.hs
+index a26fb41..34206c4 100644
+--- a/Aws/S3/Commands/CopyObject.hs
++++ b/Aws/S3/Commands/CopyObject.hs
+@@ -15,9 +15,7 @@ import qualified Data.Text.Encoding as T
+ import           Data.Time
+ import qualified Network.HTTP.Conduit as HTTP
+ import           Text.XML.Cursor (($/), (&|))
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Prelude
+diff --git a/Aws/S3/Core.hs b/Aws/S3/Core.hs
+index 6c20e35..d55711e 100644
+--- a/Aws/S3/Core.hs
++++ b/Aws/S3/Core.hs
+@@ -18,9 +18,7 @@ import           Data.Monoid
+ import           Control.Applicative            ((<|>))
+ import           Data.Time
+ import           Data.Typeable
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import           Text.XML.Cursor                (($/), (&|))
+diff --git a/Aws/Sqs/Core.hs b/Aws/Sqs/Core.hs
+index 7d2aee0..700abf5 100644
+--- a/Aws/Sqs/Core.hs
++++ b/Aws/Sqs/Core.hs
+@@ -25,9 +25,7 @@ import           Data.Typeable
+ import           Prelude
+ import qualified Network.HTTP.Conduit           as HTTP
+ import qualified Network.HTTP.Types             as HTTP
+-#if MIN_VERSION_time(1,5,0)
+-import           Data.Time.Format
+-#else
++#if !MIN_VERSION_time(1,5,0)
+ import           System.Locale
+ #endif
+ import qualified Text.XML                       as XML
+diff --git a/aws.cabal b/aws.cabal
+index a74d669..8cea405 100644
+--- a/aws.cabal
++++ b/aws.cabal
+@@ -139,7 +139,7 @@ Library
+                        scientific           >= 0.3,
+                        tagged               >= 0.7     && < 0.9,
+                        text                 >= 0.11,
+-                       time                 >= 1.1.4   && < 2.0,
++                       time                 >= 1.4.0   && < 1.7,
+                        transformers         >= 0.2.2   && < 0.6,
+                        unordered-containers >= 0.2,
+                        utf8-string          >= 0.3     && < 1.1,
+
+From b09069d269f6f8cbfb0564e4d6c8a128ce1c3a8e Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 10:25:11 -0400
+Subject: [PATCH 6/8] Add support for http-client-2.2
+
+---
+ Aws/Core.hs                   | 31 ++++++++++++++++++++++++++++---
+ Aws/S3/Commands/GetObject.hs  | 10 +++++-----
+ Aws/S3/Commands/HeadObject.hs |  6 ++----
+ aws.cabal                     |  2 +-
+ 4 files changed, 36 insertions(+), 13 deletions(-)
+
+diff --git a/Aws/Core.hs b/Aws/Core.hs
+index b81820a..45f277b 100644
+--- a/Aws/Core.hs
++++ b/Aws/Core.hs
+@@ -22,6 +22,7 @@ module Aws.Core
+ , HeaderException(..)
+ , FormException(..)
+ , NoCredentialsException(..)
++, throwStatusCodeException
+   -- ** Response deconstruction helpers
+ , readHex2
+   -- *** XML
+@@ -111,8 +112,10 @@ import qualified Data.ByteString.UTF8     as BU
+ import           Data.Char
+ import           Data.Conduit             (($$+-))
+ import qualified Data.Conduit             as C
++#if MIN_VERSION_http_conduit(2,2,0)
++import qualified Data.Conduit.Binary      as CB
++#endif
+ import qualified Data.Conduit.List        as CL
+-import           Data.Default             (def)
+ import           Data.IORef
+ import           Data.List
+ import qualified Data.Map                 as M
+@@ -462,7 +465,7 @@ queryToHttpRequest :: SignedQuery -> IO (HTTP.Request (C.ResourceT IO))
+ #endif
+ queryToHttpRequest SignedQuery{..} =  do
+     mauth <- maybe (return Nothing) (Just<$>) sqAuthorization
+-    return $ def {
++    return $ HTTP.defaultRequest {
+         HTTP.method = httpMethod sqMethod
+       , HTTP.secure = case sqProtocol of
+                         HTTP -> False
+@@ -494,7 +497,11 @@ queryToHttpRequest SignedQuery{..} =  do
+               _         -> HTTP.RequestBodyBuilder 0 mempty
+ 
+       , HTTP.decompress = HTTP.alwaysDecompress
+-      , HTTP.checkStatus = \_ _ _ -> Nothing
++#if MIN_VERSION_http_conduit(2,2,0)
++      , HTTP.checkResponse = \_ _ -> return ()
++#else
++      , HTTP.checkStatus = \_ _ _-> Nothing
++#endif
+ 
+       , HTTP.redirectCount = 10
+       }
+@@ -792,6 +799,24 @@ newtype NoCredentialsException = NoCredentialsException { noCredentialsErrorMess
+ 
+ instance E.Exception NoCredentialsException
+ 
++-- | A helper to throw an 'HTTP.StatusCodeException'.
++throwStatusCodeException :: HTTP.Request
++                         -> HTTP.Response (C.ResumableSource (ResourceT IO) ByteString)
++                         -> ResourceT IO a
++#if MIN_VERSION_http_conduit(2,2,0)
++throwStatusCodeException req resp = do
++    let resp' = fmap (const ()) resp
++    -- only take first 10kB of error response
++    body <- HTTP.responseBody resp C.$$+- CB.take (10*1024)
++    let sce = HTTP.StatusCodeException resp' (L.toStrict body)
++    throwM $ HTTP.HttpExceptionRequest req sce
++#else
++throwStatusCodeException _req resp = do
++    let cookies = HTTP.responseCookieJar resp
++        headers = HTTP.responseHeaders   resp
++        status  = HTTP.responseStatus    resp
++    throwM $ HTTP.StatusCodeException status headers cookies
++#endif
+ 
+ -- | A specific element (case-insensitive, ignoring namespace - sadly necessary), extracting only the textual contents.
+ elContent :: T.Text -> Cursor -> [T.Text]
+diff --git a/Aws/S3/Commands/GetObject.hs b/Aws/S3/Commands/GetObject.hs
+index 62da4a6..fd8ba92 100644
+--- a/Aws/S3/Commands/GetObject.hs
++++ b/Aws/S3/Commands/GetObject.hs
+@@ -1,10 +1,12 @@
++{-# LANGUAGE CPP #-}
++
+ module Aws.S3.Commands.GetObject
+ where
+ 
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Control.Applicative
+-import           Control.Monad.Trans.Resource (ResourceT, throwM)
++import           Control.Monad.Trans.Resource (ResourceT)
+ import           Data.ByteString.Char8 ({- IsString -})
+ import qualified Data.ByteString.Char8 as B8
+ import qualified Data.ByteString.Lazy  as L
+@@ -80,16 +82,14 @@ instance SignQuery GetObject where
+ 
+ instance ResponseConsumer GetObject GetObjectResponse where
+     type ResponseMetadata GetObjectResponse = S3Metadata
+-    responseConsumer _ GetObject{..} metadata resp
++    responseConsumer httpReq GetObject{..} metadata resp
+         | status == HTTP.status200 = do
+             rsp <- s3BinaryResponseConsumer return metadata resp
+             om <- parseObjectMetadata (HTTP.responseHeaders resp)
+             return $ GetObjectResponse om rsp
+-        | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
++        | otherwise = throwStatusCodeException httpReq resp
+       where
+         status  = HTTP.responseStatus    resp
+-        headers = HTTP.responseHeaders   resp
+-        cookies = HTTP.responseCookieJar resp
+ 
+ instance Transaction GetObject GetObjectResponse
+ 
+diff --git a/Aws/S3/Commands/HeadObject.hs b/Aws/S3/Commands/HeadObject.hs
+index f13c1d8..09c44f8 100644
+--- a/Aws/S3/Commands/HeadObject.hs
++++ b/Aws/S3/Commands/HeadObject.hs
+@@ -4,7 +4,6 @@ where
+ import           Aws.Core
+ import           Aws.S3.Core
+ import           Control.Applicative
+-import           Control.Monad.Trans.Resource (throwM)
+ import           Data.ByteString.Char8 ({- IsString -})
+ import qualified Data.ByteString.Char8 as B8
+ import           Data.Maybe
+@@ -61,14 +60,13 @@ instance SignQuery HeadObject where
+ 
+ instance ResponseConsumer HeadObject HeadObjectResponse where
+     type ResponseMetadata HeadObjectResponse = S3Metadata
+-    responseConsumer _ HeadObject{..} _ resp
++    responseConsumer httpReq HeadObject{..} _ resp
+         | status == HTTP.status200 = HeadObjectResponse . Just <$> parseObjectMetadata headers
+         | status == HTTP.status404 = return $ HeadObjectResponse Nothing
+-        | otherwise = throwM $ HTTP.StatusCodeException status headers cookies
++        | otherwise = throwStatusCodeException httpReq resp
+       where
+         status  = HTTP.responseStatus    resp
+         headers = HTTP.responseHeaders   resp
+-        cookies = HTTP.responseCookieJar resp
+ 
+ instance Transaction HeadObject HeadObjectResponse
+ 
+diff --git a/aws.cabal b/aws.cabal
+index 8cea405..1d8bb71 100644
+--- a/aws.cabal
++++ b/aws.cabal
+@@ -127,7 +127,7 @@ Library
+                        data-default         >= 0.5.3   && < 0.8,
+                        directory            >= 1.0     && < 1.3,
+                        filepath             >= 1.1     && < 1.5,
+-                       http-conduit         >= 2.1     && < 2.2,
++                       http-conduit         >= 2.1     && < 2.3,
+                        http-types           >= 0.7     && < 0.10,
+                        lifted-base          >= 0.1     && < 0.3,
+                        monad-control        >= 0.3,
+
+From d5b10b790ceea44c802498f9be653ba1dab8f6d1 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:26:08 -0400
+Subject: [PATCH 7/8] Ec2.InstanceMetadata: Use parseUrlThrow explicitly
+
+parseUrl is deprecated.
+---
+ Aws/Ec2/InstanceMetadata.hs | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Aws/Ec2/InstanceMetadata.hs b/Aws/Ec2/InstanceMetadata.hs
+index b1547a1..dcc254e 100644
+--- a/Aws/Ec2/InstanceMetadata.hs
++++ b/Aws/Ec2/InstanceMetadata.hs
+@@ -17,8 +17,9 @@ data InstanceMetadataException
+ instance Exception InstanceMetadataException
+ 
+ getInstanceMetadata :: HTTP.Manager -> String -> String -> IO L.ByteString
+-getInstanceMetadata mgr p x = do req <- HTTP.parseUrl ("http://169.254.169.254/" ++ p ++ '/' : x)
+-                                 HTTP.responseBody <$> HTTP.httpLbs req mgr
++getInstanceMetadata mgr p x = do
++    req <- HTTP.parseUrlThrow ("http://169.254.169.254/" ++ p ++ '/' : x)
++    HTTP.responseBody <$> HTTP.httpLbs req mgr
+ 
+ getInstanceMetadataListing :: HTTP.Manager -> String -> IO [String]
+ getInstanceMetadataListing mgr p = map BU.toString . B8.split '\n' <$> getInstanceMetadata mgr p ""
+
+From f18b362178ce2de383525af8af23da3cdc7ab466 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben at smart-cactus.org>
+Date: Fri, 4 Nov 2016 11:31:51 -0400
+Subject: [PATCH 8/8] Drop redundant Monoid (ResponseMetadata a) constraints
+
+---
+ Aws/Aws.hs | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Aws/Aws.hs b/Aws/Aws.hs
+index cc4a440..159df36 100644
+--- a/Aws/Aws.hs
++++ b/Aws/Aws.hs
+@@ -203,7 +203,6 @@ simpleAws cfg scfg request = liftIO $ runResourceT $ do
+ -- Metadata is wrapped in the Response, and also logged at level 'Info'.
+ unsafeAws
+   :: (ResponseConsumer r a,
+-      Monoid (ResponseMetadata a),
+       Loggable (ResponseMetadata a),
+       SignQuery r) =>
+      Configuration -> ServiceConfiguration r NormalQuery -> HTTP.Manager -> r -> ResourceT IO (Response (ResponseMetadata a) a)
+@@ -228,7 +227,6 @@ unsafeAws cfg scfg manager request = do
+ -- Metadata is put in the 'IORef', but not logged.
+ unsafeAwsRef
+   :: (ResponseConsumer r a,
+-      Monoid (ResponseMetadata a),
+       SignQuery r) =>
+      Configuration -> ServiceConfiguration r NormalQuery -> HTTP.Manager -> IORef (ResponseMetadata a) -> r -> ResourceT IO a
+ unsafeAwsRef cfg info manager metadataRef request = do



More information about the arch-commits mailing list