defaultDevelApp
    :: (Show env, Read env)
    => IO (AppConfig env extra) -- ^ A means to load your development @'AppConfig'@
    -> (AppConfig env extra -> Logger -> IO Application) -- ^ Get your @Application@
    -> IO (Int, Application)
defaultDevelApp load getApp = do
    conf   <- load
    logger <- defaultDevelopmentLogger
    let p = appPort conf
    logString logger $ "Devel application launched, listening on port " ++ show p
    app <- getApp conf logger
    return (p, app)
defaultDevelApp
    :: (Show env, Read env)
    => IO (AppConfig env extra) -- ^ A means to load your development @'AppConfig'@
    -> (AppConfig env extra -> Logger -> IO Application) -- ^ Get your @Application@
    -> IO (Int, Application)
defaultDevelApp load getApp = do
    conf   <- load
    logger <- defaultDevelopmentLogger
    let p = appPort conf
    logString logger $ "Devel application launched, listening on port " ++ show p
    app <- getApp conf logger
    return (p, app)
defaultDevelApp load getApp = do
    conf   <- load
    logger <- defaultDevelopmentLogger
    let p = appPort conf
    logString logger $ "Devel application launched, listening on port " ++ show p
    app <- getApp conf logger
    return (p, app)