-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | session support for apiary web framework. -- @package apiary-session @version 1.2.0 module Web.Apiary.Session.Internal data Session sess m Session :: backend -> Session sess m sessionBackend :: Session sess m -> backend class Monad m => SessionBackend backend sess m | backend -> sess, backend -> m where backendMiddleware _ = id backendMiddleware' _ = id backendGet b = genBackendModify b (\ s -> return (s, s)) backendSet b s = genBackendModify b (\ _ -> return (Just s, ())) backendDelete b = genBackendModify b (\ _ -> return (Nothing, ())) backendMiddleware :: SessionBackend backend sess m => backend -> Middleware backendMiddleware' :: SessionBackend backend sess m => backend -> Middleware' genBackendModify :: SessionBackend backend sess m => backend -> (Maybe sess -> ActionT exts prms m (Maybe sess, a)) -> ActionT exts prms m a backendGet :: SessionBackend backend sess m => backend -> ActionT exts prms m (Maybe sess) backendSet :: SessionBackend backend sess m => backend -> sess -> ActionT exts prms m () backendDelete :: SessionBackend backend sess m => backend -> ActionT exts prms m () instance Extension (Session sess m) module Web.Apiary.Session data Session sess m -- | get session provided type. getSession :: (Has (Session sess m) exts, Monad m) => proxy sess -> ActionT exts prms m (Maybe sess) -- | set session provided type. setSession :: (Has (Session sess m) exts, Monad m) => proxy sess -> sess -> ActionT exts prms m () -- | delete session provided type. deleteSession :: (Has (Session sess m) exts, Monad m) => proxy sess -> ActionT exts prms m () -- | filter by has session or not. use "session" dict key. -- --
--   session = session' (Proxy :: Proxy "session")
--   
session :: (Has (Session sess actM) exts, Monad actM, NotMember "session" kvs) => proxy sess -> ApiaryT exts (("session" := sess) : kvs) actM m () -> ApiaryT exts kvs actM m () -- | filter by has session or not. session' :: (Has (Session sess actM) exts, KnownSymbol key, Monad actM, NotMember key kvs) => kProxy key -> sProxy sess -> ApiaryT exts ((key := sess) : kvs) actM m () -> ApiaryT exts kvs actM m () -- | A concrete, poly-kinded proxy type data Proxy (t :: k) :: k -> * Proxy :: Proxy