Проверка типов внутри квазиквотов в Template Haskell

Я пытаюсь познакомиться с Template Haskell , и, к моему удивлению, приведенный ниже код компилируется под ghc ( версия 6.10.4).


    main = do
       let
           y = [| "hello" + 1 |]
       putStr ""

Это подсказывает мне, что есть ' s нет проверки типов внутри квази-кавычек. Это не то, что я ожидал, прочитав исходную статью о Template Haskell. Более того, следующая программа не компилируется.


    main = do
       let
          y = [| "hello" && True |]
       putStr ""

Что здесь происходит?

20
задан Don Stewart 16 April 2011 в 19:38
поделиться