@@ -5,7 +5,7 @@
5{-# LANGUAGE DeriveGeneric #-}
5{-# LANGUAGE DeriveGeneric #-}
6{-# LANGUAGE RankNTypes #-}
6{-# LANGUAGE RankNTypes #-}
7{-# LANGUAGE TypeOperators #-}
7{-# LANGUAGE TypeOperators #-}
8−module Main (main, api, getLink, routesLinks, cliGet, mainMyMonad) where
8+module Main (main, api, getLink, routesLinks, cliGet) where
10import Control.Exception (throwIO)
10import Control.Exception (throwIO)
11import Data.Proxy (Proxy (..))
11import Data.Proxy (Proxy (..))
@@ -102,6 +102,10 @@ main = do
102 ("run":_) -> do
102 ("run":_) -> do
103 putStrLn "Starting cookbook-generic at http://localhost:8000"
103 putStrLn "Starting cookbook-generic at http://localhost:8000"
104 run 8000 app
104 run 8000 app
105+ -- see this cookbook below for custom-monad explanation
106+ ("run-custom-monad":_) -> do
107+ putStrLn "Starting cookbook-generic with a custom monad at http://localhost:8000"
108+ run 8000 (appMyMonad AppCustomState)
105 _ -> putStrLn "To run, pass 'run' argument: cabal new-run cookbook-generic run"
109 _ -> putStrLn "To run, pass 'run' argument: cabal new-run cookbook-generic run"
@@ -134,14 +138,3 @@ nt s x = runReaderT x s
135appMyMonad :: AppCustomState -> Application
139appMyMonad :: AppCustomState -> Application
136appMyMonad state = genericServeT (nt state) recordMyMonad
140appMyMonad state = genericServeT (nt state) recordMyMonad
143− putStrLn "Starting cookbook-generic at http://localhost:8000"
144− run 8000 (appMyMonad AppCustomState)
146− putStrLn "To run, pass 'run' argument: cabal new-run cookbook-generic run"