presign :: (MonadIO m, AWSRequest a, AWSPresigner (Sg (Sv a)))
        => Env
        -> a       -- ^ Request to presign.
        -> UTCTime -- ^ Signing time.
        -> Integer -- ^ Expiry time in seconds.
        -> m Client.Request
presign Env{..} (request -> rq) t ex =
    _sgRequest `liftM` Sign.presign _envAuth _envRegion rq t ex
presign :: (MonadIO m, AWSRequest a, AWSPresigner (Sg (Sv a)))
        => Env
        -> a       -- ^ Request to presign.
        -> UTCTime -- ^ Signing time.
        -> Integer -- ^ Expiry time in seconds.
        -> m Client.Request
presign Env{..} (request -> rq) t ex =
    _sgRequest `liftM` Sign.presign _envAuth _envRegion rq t ex
presign Env{..} (request -> rq) t ex =
    _sgRequest `liftM` Sign.presign _envAuth _envRegion rq t ex