В настоящее время я пытаюсь скомпилировать симулятор, созданный с помощью ghc 7.6.3, с новым ghc 7.8.3 и столкнулся с проблемой с GHC.Event.Таймауты с ghc 7.8.3
Я использую функции таймаута, которые изменились с помощью 7.8.3. В 7.8.3 теперь имеется глобальная функция getSystemTimerManager
, которая возвращает TimerManager
. Но тип данных TimerManager
не экспортируется, он является частью скрытого пакета GHC.Event.TimerManager. Когда я пытаюсь импортировать этот модуль я получаю:
Utils/Timer.hs:16:8:
Could not find module ‘GHC.Event.TimerManager’
it is a hidden module in the package ‘base’
Use -v to see a list of the files searched for.
В чем причина, что этот модуль скрыт, так что не могут быть использованы функции таймера?
Вы используете 'cabal' для сборки? Возможно, вам придется добавить 'base' в раздел' build-depends' вашего файла cabal. –
У вас не должно быть доступа к 'TimerManager', это похоже на тип' IO', он скрыт для предотвращения злоупотреблений. Вместо этого 'GHC.Event' экспортирует' registerTimeout', 'unregisterTimeout' и' updateTimeout' для выполнения операций таймаута. – bheklilr
@JustinWood Добавление 'base' в' build-depends' не будет исправлено, модуль 'GHC.Event.TimerManager' скрыт, то есть он вообще не экспортируется' base'. GHC намеренно сделал этот модуль недоступным для предотвращения злоупотребления его содержимым. – bheklilr