{-# LANGUAGE ExistentialQuantification #-}moduleSnap.Snaplet.Session.SessionManagerwhereimportData.Text(Text)importPreludehiding(lookup)importSnap.Core(Snap)-- | Any Haskell record that is a member of the 'ISessionManager' typeclass-- can be stuffed inside a 'SessionManager' to enable all session-related-- functionality.dataSessionManager=foralla.ISessionManagera=>SessionManageraclassISessionManagerrwhere-- | Load a session from given payload.---- Will always be called before any other operation. If possible, cache and-- do nothing when called multiple times within the same request cycle.load::r->Snapr-- | Commit session, return a possibly updated paylaodcommit::r->Snap()-- | Reset sessionreset::r->Snapr-- | Touch sessiontouch::r->r-- | Insert a key-value pair into sessioninsert::Text->Text->r->r-- | Lookup a key in sessionlookup::Text->r->(MaybeText)-- | Delete a key in sessiondelete::Text->r->r-- | Return a session-specific CSRF protection token. See 'mkCSRFToken' for-- help in creating the value.csrf::r->Text-- | Return all key-value pairs as an association listtoList::r->[(Text,Text)]