happstack-6.0.0: templates/project/src/Types/GuestBook.hs
{-# LANGUAGE DeriveDataTypeable, FlexibleContexts, FlexibleInstances, MultiParamTypeClasses, TemplateHaskell, UndecidableInstances #-}
module Types.GuestBook where
import Happstack.Data (Default, Version, deriveAll, deriveSerialize)
import System.Time (ClockTime)
import Happstack.State.ClockTime () -- instance Data ClockTime
$(deriveAll [''Show, ''Eq, ''Ord, ''Default]
[d|
-- |GuestBookEntry: simple guest book entry
data GuestBookEntry = GuestBookEntry
{ author :: String
, message :: String
, date :: ClockTime
, email :: String
}
-- |GuestBook: a list of GuestBookEntry
newtype GuestBook = GuestBook { guestBookEntries :: [GuestBookEntry] }
|])
$(deriveSerialize ''GuestBookEntry)
instance Version GuestBookEntry
$(deriveSerialize ''GuestBook)
instance Version GuestBook