Отсутствует импорт из библиотек Hamlet

Это фрагмент кода из O reilly - Yesod - Widgets,

getRootR = defaultLayout $ do
    setTitle "My Page Title"
    toWidget [lucius| h1 { color: green; } |]
    addScriptRemote "https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"
    toWidget [julius|
      $(function() {
        $("h1").click(function(){ alert("You clicked on the heading!"); });
      });
    |]
    toWidgetHead [hamlet| <meta name=keywords content="some sample keywords">|]
    toWidget [hamlet| <h1>Here's one way of including content |]
    [whamlet| <h2>Here's another |]
    toWidgetBody [julius| alert("This is included in the body itself"); |]

Этот код выдает ошибку,

widget.hs:3:12: Not in scope: ‘defaultLayout’
widget.hs:4:3: Not in scope: ‘setTitle’
widget.hs:5:3: Not in scope: ‘toWidget’

Какие модули из Hamlet мне нужно импортировать, чтобы это заработало? Есть ли в haskell функция автозаполнения, которая будет пытаться искать и автоматически импортировать имена модулей?


person Community    schedule 02.05.2015    source источник
comment
Вы импортировали Yesod.Core и Yesod.Core.Widget?   -  person Sibi    schedule 02.05.2015
comment
который решил undefined ошибки. спасибо, сиби   -  person    schedule 02.05.2015


Ответы (1)


Импортируйте Yesod.Core и Yesod.Core.Widget, они предоставят соответствующие функции.

Также обратите внимание, что у них есть онлайн-версия книги. И вообще, если вы видите ошибки импорта, выполните поиск в Hoogle, и в большинстве случаев вы, вероятно, найдете там решение.

person Sibi    schedule 02.05.2015