Haskell - Yesod - wai-handler-devel でスクリプト言語のようにデバッグする

wai-handler-develというモジュールを使うと、変更を加えると自動的にコンパイル・リロードされ(?)迅速にデバッグ・開発が出来る。
yesodとも相性は抜群だ。
wai-handler-devel - hackage


-- HelloWorld.hs
{-# LANGUAGE TypeFamilies, QuasiQuotes, MultiParamTypeClasses,TemplateHaskell, OverloadedStrings #-}
module HelloWorld where

import Yesod

-- routing                                                                                                                                                              
data HelloWorld = HelloWorld

mkYesod "HelloWorld" [parseRoutes|
/ HomeR GET
|]

instance Yesod HelloWorld where
    approot _ = ""

getHomeR :: Handler RepHtml
getHomeR = defaultLayout [whamlet|Hello World!|]

withHelloWorld f = toWaiApp HelloWorld >>= f

というファイルをwai-handler-develで動かす。

wai-handler-devel

なので

wai-handler-devel 3000 HelloWorld withHelloWorld

とすると動く