Почему GHC не заканчивается этим шаблоном Haskell шаблона GADT?

У меня проблема с генерацией GADT с шаблоном Haskell. Проблема в том, что я не могу заставить код полностью скомпилироваться. GHCI не завершает работу при загрузке файла, и процесс GHC использует много памяти и процессоров, насколько это возможно (2,4 ГБ, 50~70%).

Я попытался сделать минимальный пример, в котором это все еще происходит. Неважно, если я использую оксфордскую нотацию ([| |]) или создайте функцию, применяя типы данных TH вручную. Рассмотрим этот простой модуль:

{-# LANGUAGE GADTs, TemplateHaskell #-}
module Test where
$( [d| data Test a where
         T :: Test String
     |] )

Я использую GHC 7.4.2 на OSX Mountain Lion с платформы Haskell для x64.

У кого-нибудь есть идея, почему это происходит? Может я неправильно использую какой-то код?

1 ответ

Решение

Оказывается, что на моей 32-битной машине Ubuntu с 32-битным GHC 7.4.2 код работает правильно. Поэтому я предположил, что проблема заключается либо в разнице в ОС или архитектуре процессора.

После установки 32-битной платформы Haskell код компилируется. Угадай, это ошибка в компиляторе. Я постараюсь подать ошибку для этого. Должно ли это быть сделано с помощью GHC или шаблона haskell?

Другие вопросы по тегам