Я пытаюсь ознакомиться с Template Haskell, и, к моему удивлению, код ниже компилируется под ghc
(версия 6.10.4).
main = do let y = [| "hello" + 1 |] putStr ""
Это говорит мне о том, что в квазициклах нет никакой проверки. Это не то, что я ожидал после прочтения оригинального paper в Template Haskell. Кроме того, следующая программа не компилируется.
main = do let y = [| "hello" && True |] putStr ""
Что здесь происходит?