Использование UTCTime с Гамлетом

Я использую Yesod на своем первом сайте, и у меня есть список новостей:

NewsItem
    date    UTCTime default=CURRENT_TIME
    title   String
    content String
    author  String

которые получены в моем обработчике:

newsitems <- runDB $ selectList [] [Desc NewsItemDate]

и в конечном итоге используется в моем шаблоне:

$if null newsitems
    <p>No news.
$else
    $forall Entity id entry <- newsitems
        <article>
            <h4>#{newsItemDate entry}
            <p>#{newsItemContent entry}

Но я получаю ошибку о типах данных:

Handler/Home.hs:20:11:
    No instance for (Text.Blaze.ToMarkup
                       time-1.4:Data.Time.Clock.UTC.UTCTime)
      arising from a use of `toHtml'
    Possible fix:
      add an instance declaration for
      (Text.Blaze.ToMarkup time-1.4:Data.Time.Clock.UTC.UTCTime)
    In the first argument of `toWidget', namely
      `toHtml (newsItemDate entry_a6ev)'
    In a stmt of a 'do' block:
      toWidget (toHtml (newsItemDate entry_a6ev))
    In the expression:
      do { toWidget
             ((Text.Blaze.Internal.preEscapedText . Data.Text.pack)
                "<article><h4>");
           toWidget (toHtml (newsItemDate entry_a6ev));
           toWidget
             ((Text.Blaze.Internal.preEscapedText . Data.Text.pack)
                "</h4>\
                \<p>");
           toWidget (toHtml (newsItemContent entry_a6ev));
           .... }

Так что я решил пойти дальше и добавить в свой Import.hs:

import Data.Time (UTCTime)
import Data.Time.Format (formatTime)
import Text.Blaze (ToMarkup, toMarkup)
import Text.Blaze.Internal (string)
import System.Locale (defaultTimeLocale)

-- format date as     26 July 2012
instance ToMarkup UTCTime where
   toMarkup a = string (formatTime defaultTimeLocale "%e %B %Y" a)

Который компилируется, но выдает ошибку во время выполнения в браузере:

Internal Server Error
PersistMarshalError "Expected UTCTime, received PersistText \"2012-08-30\""

Так что я не уверен, как решить эту проблему, какие-либо идеи?

РЕДАКТИРОВАТЬ: Исходный код сайта, если он нужен или любопытно:https://github.com/iaefai/socrsite

Ответы на вопрос(2)

Ваш ответ на вопрос