-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Utility library for use in generated API client libraries.
--   
--   Utility library for use in generated API client libraries.
@package rest-client
@version 0.5.1.1

module Rest.Client.Base
data ApiInfo
ApiInfo :: Manager -> String -> Int -> [(String, String)] -> ApiInfo
[manager] :: ApiInfo -> Manager
[apiHost] :: ApiInfo -> String
[apiPort] :: ApiInfo -> Int
[headers] :: ApiInfo -> [(String, String)]
data ApiState
ApiState :: CookieJar -> ApiState
[cookies] :: ApiState -> CookieJar
newtype ApiT m a
ApiT :: StateT ApiState (ReaderT ApiInfo (ResourceT m)) a -> ApiT m a
[unApiT] :: ApiT m a -> StateT ApiState (ReaderT ApiInfo (ResourceT m)) a
type Api = ApiT IO
class (MonadResource m, MonadBaseControl IO m, Monad m, Functor m, MonadBase IO m) => ApiStateC m
getApiState :: ApiStateC m => m ApiState
putApiState :: ApiStateC m => ApiState -> m ()
askApiInfo :: ApiStateC m => m ApiInfo
runT :: (MonadBaseControl IO m, Monad m) => ApiInfo -> ApiState -> ApiT m a -> ResourceT m a
run :: String -> ApiT IO a -> IO a
runWithPort :: String -> Int -> ApiT IO a -> IO a
data ApiResponse e a
ApiResponse :: Int -> ByteString -> (Int, Int) -> [(CI ByteString, ByteString)] -> Either (Reason e) a -> ApiResponse e a
[statusCode] :: ApiResponse e a -> Int
[statusMessage] :: ApiResponse e a -> ByteString
[httpVersion] :: ApiResponse e a -> (Int, Int)
[responseHeaders] :: ApiResponse e a -> [(CI ByteString, ByteString)]
[responseBody] :: ApiResponse e a -> Either (Reason e) a
responseToMaybe :: ApiResponse e a -> Maybe a
instance (GHC.Show.Show e, GHC.Show.Show a) => GHC.Show.Show (Rest.Client.Base.ApiResponse e a)
instance GHC.Base.Functor (Rest.Client.Base.ApiResponse e)
instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Rest.Client.Base.ApiT m)
instance GHC.Base.Monad m => GHC.Base.Monad (Rest.Client.Base.ApiT m)
instance GHC.Base.Monad m => GHC.Base.Applicative (Rest.Client.Base.ApiT m)
instance GHC.Base.Functor m => GHC.Base.Functor (Rest.Client.Base.ApiT m)
instance (Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO m, GHC.Base.Monad m, GHC.Base.Functor m, Control.Monad.Base.MonadBase GHC.Types.IO m, Control.Monad.IO.Class.MonadIO m, Control.Monad.Catch.MonadThrow m) => Rest.Client.Base.ApiStateC (Rest.Client.Base.ApiT m)
instance Control.Monad.Trans.Class.MonadTrans Rest.Client.Base.ApiT
instance Control.Monad.Base.MonadBase b m => Control.Monad.Base.MonadBase b (Rest.Client.Base.ApiT m)
instance Control.Monad.Trans.Control.MonadTransControl Rest.Client.Base.ApiT
instance Control.Monad.Trans.Control.MonadBaseControl v m => Control.Monad.Trans.Control.MonadBaseControl v (Rest.Client.Base.ApiT m)
instance Control.Monad.Catch.MonadThrow m => Control.Monad.Catch.MonadThrow (Rest.Client.Base.ApiT m)
instance Control.Monad.Catch.MonadCatch m => Control.Monad.Catch.MonadCatch (Rest.Client.Base.ApiT m)
instance (Control.Monad.IO.Class.MonadIO m, Control.Monad.Catch.MonadThrow m, Control.Monad.Base.MonadBase GHC.Types.IO m, GHC.Base.Functor m, GHC.Base.Applicative m) => Control.Monad.Trans.Resource.Internal.MonadResource (Rest.Client.Base.ApiT m)
instance Rest.Client.Base.ApiStateC m => Rest.Client.Base.ApiStateC (Control.Monad.Trans.Except.ExceptT e m)
instance (Control.Monad.Trans.Error.Error e, Rest.Client.Base.ApiStateC m) => Rest.Client.Base.ApiStateC (Control.Monad.Trans.Error.ErrorT e m)
instance (GHC.Base.Monoid w, Rest.Client.Base.ApiStateC m) => Rest.Client.Base.ApiStateC (Control.Monad.Trans.RWS.Lazy.RWST r w s m)
instance (GHC.Base.Monoid w, Rest.Client.Base.ApiStateC m) => Rest.Client.Base.ApiStateC (Control.Monad.Trans.Writer.Lazy.WriterT w m)
instance Rest.Client.Base.ApiStateC m => Rest.Client.Base.ApiStateC (Control.Monad.Trans.List.ListT m)
instance Rest.Client.Base.ApiStateC m => Rest.Client.Base.ApiStateC (Control.Monad.Trans.Reader.ReaderT r m)
instance Rest.Client.Base.ApiStateC m => Rest.Client.Base.ApiStateC (Control.Monad.Trans.State.Lazy.StateT s m)

module Rest.Client.Internal

-- | Monads in which <a>IO</a> computations may be embedded. Any monad
--   built by applying a sequence of monad transformers to the <a>IO</a>
--   monad will be an instance of this class.
--   
--   Instances should satisfy the following laws, which state that
--   <a>liftIO</a> is a transformer of monads:
--   
--   <ul>
--   <li><pre><a>liftIO</a> . <a>return</a> = <a>return</a></pre></li>
--   <li><pre><a>liftIO</a> (m &gt;&gt;= f) = <a>liftIO</a> m &gt;&gt;=
--   (<a>liftIO</a> . f)</pre></li>
--   </ul>
class Monad m => MonadIO (m :: * -> *)

-- | Lift a computation from the <a>IO</a> monad.
liftIO :: MonadIO m => IO a -> m a

-- | A space-efficient representation of a <a>Word8</a> vector, supporting
--   many efficient operations.
--   
--   A lazy <a>ByteString</a> contains 8-bit bytes, or by using the
--   operations from <a>Data.ByteString.Lazy.Char8</a> it can be
--   interpreted as containing 8-bit characters.
data ByteString :: *

-- | <a>intercalate</a> <tt>xs xss</tt> is equivalent to <tt>(<a>concat</a>
--   (<a>intersperse</a> xs xss))</tt>. It inserts the list <tt>xs</tt> in
--   between the lists in <tt>xss</tt> and concatenates the result.
intercalate :: [a] -> [[a]] -> [a]

-- | URI encode a <a>String</a>, unicode aware.
encode :: String -> String
class ShowUrl a
showUrl :: ShowUrl a => a -> String

-- | HTTP Header names According to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html</a>
hAccept :: HeaderName

-- | HTTP Header names According to
--   <a>http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html</a>
hContentType :: HeaderName
data ApiRequest
ApiRequest :: String -> String -> [(String, String)] -> RequestHeaders -> ByteString -> ApiRequest
[method] :: ApiRequest -> String
[uri] :: ApiRequest -> String
[params] :: ApiRequest -> [(String, String)]
[requestHeaders] :: ApiRequest -> RequestHeaders
[requestBody] :: ApiRequest -> ByteString
doRequest :: ApiStateC m => (ByteString -> Reason e) -> (ByteString -> a) -> ApiRequest -> m (ApiResponse e a)
parseResult :: (ByteString -> Reason e) -> (ByteString -> a) -> Response ByteString -> ApiResponse e a
fromJSON :: FromJSON a => ByteString -> a
toJSON :: ToJSON a => a -> ByteString
fromXML :: XmlStringToType a => ByteString -> a
toXML :: XmlStringToType a => a -> ByteString
makeReq :: String -> String -> [[String]] -> [(String, String)] -> RequestHeaders -> ByteString -> ApiRequest
doReq :: (ApiStateC m, MonadIO m) => ApiRequest -> m (Response ByteString)
instance Rest.Client.Internal.XmlStringToType GHC.Base.String
instance Text.XML.HXT.Arrow.Pickle.Xml.XmlPickler a => Rest.Client.Internal.XmlStringToType a
