2012-03-23
QuasiQuotesの謎
TemplateHaskell及びQuasiQuotesの学習中。これらが凄いということは分かったのだけど、文法に謎の制約が。
QuasiQuotesの[xxx| ... |]のxxx部分でモジュール名のプリフィックスを付けると、シンタックスエラーになってしまう。エラーメッセージから推測するに、リスト内包と解釈されてしまってるっぽい。
{-# LANGUAGE TemplateHaskell, QuasiQuotes #-} import qualified Text.Hamlet as H template :: a -> H.Html template = [H.hamlet| <html> <head> <title>hoge <body> <h1>fuga |]
こういう風に普通にqualifiedしたいのに、エラーとは...。これが出来ない理由は何かあるんだろうか?折角の素晴らしい機能なのに玉にキズだ。