import Data.Maybe import Control.Monad.State (modify, gets) import Network.FastCGI import Network.URI import Network.CGI import Routing import AppMonad import Template import Database import Shared import Text.XHtml cgiMain :: App CGIResult cgiMain = do initTemplates (fromMaybe 0) <$> read <$$> getCookie "visited" >>= modify . setNumVisited newCookie "visited" . show . (+1) <$> gets numVisited >>= setCookie uri <- requestURI routeRequest uri main :: IO () main = do conn <- connect let as = AppState Nothing 0 conn runApp as cgiMain