В пакете encoding используется HaXml в его построении script (в Setup.hs
). Случается, что биты интерфейса изменяются между HaXml-1.19 и HaXml-1.22. Было бы неплохо, если бы пакет кодировки мог строить с любой версией. Я попытался использовать обычный трюк Cabal, а именно, что-то вроде
{-# LANGUAGE CPP #-}
#if MIN_VERSION_HaXml(1,22,0)
-- HaXml-1.22 code
#else
-- HaXml-1.19 code
#endif
... но магия не может существовать до того, как пакет настроен, и этот файл создается, чтобы сделать возможным шаг настройки. Какие у меня варианты? Есть ли способ изменить команду, которая вызывает вызовы для компиляции Setup.hs
? Есть ли еще один механизм условного выбора кода, который обходит кабала?