Что такое конструкция $()?

Я пытаюсь найти в ссылке Haskell использование этого:

getHomeR = defaultLayout $ do
    setTitle "My Awesome Site"
    $(widgetFile "home")

В частности:

$(widgetFile "home")

Я знаю, что оператор $дает приоритет тому, что справа от него, но я не смог понять использование $(). Кто-нибудь?

Ответ 1

Это не используется оператор приложения $, но включает в себя фрагмент шаблона Haskell.

Очень грубо, widgetFile "home" - это код, который запускается во время компиляции: он генерирует код Haskell, который затем компилируется, как обычно. Это форма metaprogramming в Haskell.