    {-# LANGUAGE CPP #-}

    {-| Both the GHC and GHCJS implementations of 'Dhall.Import.Manager.Manager'
        export a `Dhall.Import.Manager.Manager` type suitable for use within the
        "Dhall.Import" module

        For the GHC implementation the `Dhall.Import.Manager` type is a real
        `Network.HTTP.Client.Manager` from the @http-client@ package.  For the
        GHCJS implementation the `Dhall.Import.Manager.Manager` type is
        a synonym for @`Data.Void.Void`@ since GHCJS does not use a
        `Network.HTTP.Client.Manager` for HTTP requests.
    -}
    module Dhall.Import.Manager
        ( -- * Manager
          Manager
        , defaultNewManager
        ) where

    import           Network.HTTP.Client (Manager, newManager)
    import qualified Network.HTTP.Client as HTTP

    #ifdef USE_HTTP_CLIENT_TLS
    import Network.HTTP.Client.TLS (tlsManagerSettings)
    #endif

    defaultNewManager :: IO Manager
    defaultNewManager :: IO Manager
    defaultNewManager = ManagerSettings -> IO Manager
    newManager
    #ifdef USE_HTTP_CLIENT_TLS
      ManagerSettings
    tlsManagerSettings
    #else
      HTTP.defaultManagerSettings
    #endif
        { managerResponseTimeout :: ResponseTimeout
    HTTP.managerResponseTimeout = Int -> ResponseTimeout
    HTTP.responseTimeoutMicro (Int
    30 Int -> Int -> Int
    forall a. Num a => a -> a -> a
    * Int
    1000 Int -> Int -> Int
    forall a. Num a => a -> a -> a
    * Int
    1000) }  -- 30 seconds