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


-- | Creation of type-safe, RESTful web applications.
--   
--   A RESTful web framework with strong compile-time guarantees of
--   correctness. It also affords space efficient code, highly concurrent
--   loads, and portability to many deployment backends (via the wai
--   package), from CGI to stand-alone serving.
--   
--   Yesod also focuses on developer productivity. Yesod integrates well
--   with tools for all your basic web development (wai, persistent, and
--   shakespeare/hamlet)
--   
--   The Yesod documentation site <a>http://www.yesodweb.com/</a> has much
--   more information, including on the supporting packages mentioned
--   above.
@package yesod
@version 1.1.9.2


-- | This module simply re-exports from other modules for your convenience.
module Yesod

-- | A convenience method to run an application using the Warp webserver on
--   the specified port. Automatically calls <a>toWaiApp</a>.
warp :: (Yesod a, YesodDispatch a a) => Int -> a -> IO ()

-- | Same as <a>warp</a>, but also sends a message to stdout for each
--   request, and an "application launched" message as well. Can be useful
--   for development.
warpDebug :: (Yesod a, YesodDispatch a a) => Int -> a -> IO ()

-- | Runs your application using default middlewares (i.e., via
--   <a>toWaiApp</a>). It reads port information from the PORT environment
--   variable, as used by tools such as Keter.
--   
--   Note that the exact behavior of this function may be modified slightly
--   over time to work correctly with external tools, without a change to
--   the type signature.
warpEnv :: (Yesod a, YesodDispatch a a) => a -> IO ()

-- | Run a development server, where your code changes are automatically
--   reloaded.
develServer :: Int -> String -> String -> IO ()
type Application = Request -> ResourceT IO Response

-- | Lift a computation from the <a>IO</a> monad.
liftIO :: MonadIO m => forall a. IO a -> m a
class MonadBase b m => MonadBaseControl (b :: * -> *) (m :: * -> *) | m -> b
showIntegral :: Integral a => a -> String
readIntegral :: Num a => String -> Maybe a
hamlet :: QuasiQuoter
xhamlet :: QuasiQuoter

-- | A function generating an <a>Html</a> given a URL-rendering function.
type HtmlUrl url = Render url -> Html
type Html = Markup
toHtml :: ToMarkup a => a -> Html
julius :: QuasiQuoter

-- | Return type of template-reading functions.
type JavascriptUrl url = (url -> [(Text, Text)] -> Text) -> Javascript

-- | render with route interpolation. If using this module standalone,
--   apart from type-safe routes, a dummy renderer can be used:
--   
--   <pre>
--   renderJavascriptUrl (\_ _ -&gt; undefined) javascriptUrl
--   </pre>
--   
--   When using Yesod, a renderer is generated for you, which can be
--   accessed within the GHandler monad: <a>getUrlRenderParams</a>.
renderJavascriptUrl :: (url -> [(Text, Text)] -> Text) -> JavascriptUrl url -> Text
toJSON :: ToJSON a => a -> Value
cassius :: QuasiQuoter

-- | <pre>
--   &gt;&gt;&gt; renderCss ([lucius|foo{bar:baz}|] undefined)
--   "foo{bar:baz}"
--   </pre>
lucius :: QuasiQuoter
type CssUrl url = (url -> [(Text, Text)] -> Text) -> Css
renderCssUrl :: (url -> [(Text, Text)] -> Text) -> CssUrl url -> Text
