Как я могу сохранить свой пакет на Haskell в LTS без MissingH?

Начиная с GHC 8.6.1, MissingH больше не включается в Stackage LTSnightlyпо-видимому, из-за несовместимости между MissingH и Control.Monad.Fail.MonadFail, В частности, если я пытаюсь собрать свой пакет на основе распознавателя 8.6.1 и вручную добавить MissingH (из текущей ветки, поскольку версия Hackage отклонена из-за ограничения на базу), я получаю:

/home/travis/build/orome/crypto-enigma-hs/.stack-work/downloaded/cfhWTjyPvK7n/src/Data/Compression/Inflate.hs:189:14: error:
    • No instance for (Control.Monad.Fail.MonadFail InfM)
        arising from a do statement
        with the failable pattern ‘[x]’
    • In a stmt of a 'do' block: [x] <- get_bits 1
      In the expression:
        do [x] <- get_bits 1
           return x
      In an equation for ‘get_bit’:
          get_bit
            = do [x] <- get_bits 1
                 return x
    |
189 | get_bit = do [x] <- get_bits 1
    |              ^^^^^^^^^^^^^^^^^

Я не уверен, как поступить. Я ожидаю, что многие пакеты зависят от MissingH и будут выгнаны из LTS, если он не будет обновлен.

Есть ли альтернативы MissingH, которые я мог бы использовать. MissingH активно поддерживается, и я должен ожидать, что это будет исправлено скоро?


Я не уверен, какую часть MissingH я использую ( как мне это понять в Хаскеле?Data.String.Utilsпо крайней мере оттуда), но мой импорт (по всем файлам) выглядит так:

import           Control.Arrow
import           Control.Exception      (assert)
import           Control.Monad          (unless)
import           Control.Monad.Except
import           Control.Monad.Zip
import           Control.Applicative
import           Data.Monoid
import           Data.List
import           Data.List.Split        (splitOn)
import qualified Data.Map               as M
import           Data.Maybe
import           Text.Printf            (printf)
import           Data.Char              (toUpper)
import           Data.String.Utils      (replace)

import Data.Char (chr, ord)
import Data.List (sort)

import Control.Applicative
import Data.Monoid
import Data.Char
import Data.List
import Data.List.Split          (chunksOf)
import Data.String.Utils        (replace)
import Text.Printf              (printf)

Есть ли обратно совместимая замена для частей MissingH, которые я использую?

0 ответов

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