2016-12-06 2 views
2

Est-ce que quelqu'un sait pourquoi cette déclaration d'importation spécifique unique pose un problème? J'utilise le bac à sable et la cabale. Mes autres importations fonctionnent correctement (Web.Scotty, Data.Text.Lazy, etc.). Je cours avec "cabal exec runghc filename.hs". Je n'ai pas de fichier cabal.config, mais j'ai un fichier cabal.sandbox.config.Erreur: "Impossible de charger l'interface pour 'Data.Either.Utils'"

J'essaie d'utiliser la fonction forceEither, qui est dans Data.Either.Utils. Mes déclarations d'importation sont normales pour autant que je peux dire:

{-# LANGUAGE OverloadedStrings #-} 
import Web.Scotty 
import Control.Monad.Trans (liftIO) 
import Data.Aeson (object, (.=)) 
import Network.HTTP.Types.Status 
import Data.Text.Lazy 
import Data.Text.Lazy.IO 
import Data.Either.Utils 

import Data.Monoid (mconcat) 

Message:

filename.hs:8:1: error: 
    Failed to load interface for ‘Data.Either.Utils’ 
    Use -v to see a list of the files searched for. 

Courir avec -v spectacles:

Using a sandbox located at 
/Users/myuser/Desktop/mydirectory/myotherdirectory/.cabal-sandbox 
/usr/local/bin/ghc --print-global-package-db 
/usr/local/bin/runghc filename.hs 
+0

J'ai modifié le message. S'il vous plaît laissez-moi savoir si vous pensez que je peux améliorer plus. – slothish1

+0

Merci de faire des modifications, j'espère que vous appréciez le codage. –

Répondre

2

Le module Data.Either.Utils ne fait pas partie de la « base "Haskell; ça fait partie du paquet MissingH, et ce paquet semble être ... ha ha .. manquant!

Je ne suis pas trop familier avec Cabal (sandboxes j'utilise Stack), mais vous pouvez probablement courir:

cabal install MissingH 

dans votre bac à sable, et vous devriez être bon d'aller.

Si cela ne fonctionne pas, il suffit de copier le code pour forceEither de missingh:

forceEither :: Show e => Either e a -> a 
forceEither (Left x) = error (show x) 
forceEither (Right x) = x