\begin{code} {-# LANGUAGE QuasiQuotes, OverloadedStrings #-} import Text.Hamlet import qualified Data.ByteString.Lazy as L import Data.Text (Text, cons) data Person = Person { name :: String , age :: String , page :: PersonUrls , isMarried :: Bool , children :: [String] } data PersonUrls = Homepage | PersonPage Text renderUrls :: PersonUrls -> [(Text, Text)] -> Text renderUrls Homepage _ = "/" renderUrls (PersonPage name) _ = '/' `cons` name footer :: Hamlet url footer = [$hamlet|\