{-# LANGUAGE OverloadedStrings, NoMonomorphismRestriction, GADTs, TemplateHaskell #-} module Main where ---------------------------------------------------------- -- Section 0: Imports. -- ---------------------------------------------------------- import Control.Applicative import Control.Lens import Data.ByteString (ByteString) import Data.Text (Text) import Data.Maybe (fromMaybe) import qualified Data.Map as M import Snap (Handler, method, Method(..), writeText, writeBS, getParam, SnapletInit, makeSnaplet, addRoutes, route, liftIO, void) import qualified Snap as Snap import Control.Concurrent.Async (async) import Control.Concurrent.MVar (MVar, newEmptyMVar, tryPutMVar, tryTakeMVar, isEmptyMVar) import qualified System.IO.Streams as Stream import qualified System.IO.Streams.Concurrent as Stream import System.Exit (exitSuccess, exitFailure) import Snap.Test.BDD ---------------------------------------------------------- -- Section 1: Example application used for testing. -- ---------------------------------------------------------- data App = App { _mv :: MVar () } makeLenses ''App html :: Text html = "
One | Two |