@@ -9,10 +9,13 @@ module Distribution.Nixpkgs.Haskell.FromCabal.Configuration
12+import Prelude hiding ( fail )
12import Control.DeepSeq
14import Control.DeepSeq
13import Control.Exception ( throwIO )
15import Control.Exception ( throwIO )
14import Control.Lens
16import Control.Lens
15−import Control.Monad
17+import Control.Monad hiding ( fail )
18+import Control.Monad.Fail
16import Data.Aeson
19import Data.Aeson
17import Data.Map as Map
20import Data.Map as Map
18import Data.Set as Set
21import Data.Set as Set
@@ -91,7 +94,7 @@ parseKey s = either error id (parseEither parseJSON (String s))
91readConfiguration :: FilePath -> IO Configuration
94readConfiguration :: FilePath -> IO Configuration
92readConfiguration path = decodeFileEither path >>= either throwIO assertConsistency
95readConfiguration path = decodeFileEither path >>= either throwIO assertConsistency
94−assertConsistency :: Monad m => Configuration -> m Configuration
97+assertConsistency :: MonadFail m => Configuration -> m Configuration
95assertConsistency cfg@Configuration {..} = do
98assertConsistency cfg@Configuration {..} = do
96 let report msg = fail ("*** configuration error: " ++ msg)
99 let report msg = fail ("*** configuration error: " ++ msg)
97 maintainedPackages = Set.unions (Map.elems packageMaintainers)
100 maintainedPackages = Set.unions (Map.elems packageMaintainers)