Skip to content

Commit

Permalink
Adapt to GHC 8.8.1.
Browse files Browse the repository at this point in the history
  • Loading branch information
RyanGlScott authored and sol committed Oct 11, 2019
1 parent 5fd911f commit 1549350
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 8 deletions.
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## Changes in 0.33.0
- Support GHC 8.8.1: `fail` is no longer a part of `Monad`. Instead, it lives
in the `MonadFail` class. Adapting our code to this change meant changing
the types of exporting functions, unfortunately, hence the major version
bump.

## Changes in 0.32.0
- Support Cabal 3.0
- Switch reexported-modules to comma-separated list
Expand Down
3 changes: 2 additions & 1 deletion src/Data/Aeson/Config/Parser.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ module Data.Aeson.Config.Parser (

import Control.Monad
import Control.Applicative
import qualified Control.Monad.Fail as Fail
import Control.Monad.Trans.Class
import Control.Monad.Trans.Writer
import Data.Monoid ((<>))
Expand Down Expand Up @@ -64,7 +65,7 @@ fromAesonPathElement e = case e of
Aeson.Index n -> Index n

newtype Parser a = Parser {unParser :: WriterT (Set JSONPath) Aeson.Parser a}
deriving (Functor, Applicative, Alternative, Monad)
deriving (Functor, Applicative, Alternative, Monad, Fail.MonadFail)

liftParser :: Aeson.Parser a -> Parser a
liftParser = Parser . lift
Expand Down
1 change: 1 addition & 0 deletions src/Hpack/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE LiberalTypeSynonyms #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE CPP #-}
Expand Down
7 changes: 4 additions & 3 deletions src/Hpack/Syntax/BuildTools.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module Hpack.Syntax.BuildTools (
, SystemBuildTools(..)
) where

import qualified Control.Monad.Fail as Fail
import Data.Text (Text)
import qualified Data.Text as T
import Data.Semigroup (Semigroup(..))
Expand Down Expand Up @@ -53,7 +54,7 @@ instance FromValue BuildTools where
buildToolFromString :: Text -> Parser (ParseBuildTool, DependencyVersion)
buildToolFromString s = parseQualifiedBuildTool s <|> parseUnqualifiedBuildTool s

parseQualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseQualifiedBuildTool :: Fail.MonadFail m => Text -> m (ParseBuildTool, DependencyVersion)
parseQualifiedBuildTool = fmap fromCabal . cabalParse "build tool" . T.unpack
where
fromCabal :: D.ExeDependency -> (ParseBuildTool, DependencyVersion)
Expand All @@ -62,7 +63,7 @@ instance FromValue BuildTools where
, DependencyVersion Nothing $ versionConstraintFromCabal version
)

parseUnqualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseUnqualifiedBuildTool :: Fail.MonadFail m => Text -> m (ParseBuildTool, DependencyVersion)
parseUnqualifiedBuildTool = fmap (first UnqualifiedBuildTool) . parseDependency "build tool"

newtype SystemBuildTools = SystemBuildTools {
Expand All @@ -80,7 +81,7 @@ instance FromValue SystemBuildTools where
, parseName = T.unpack
}

parseSystemBuildTool :: Monad m => Text -> m (String, VersionConstraint)
parseSystemBuildTool :: Fail.MonadFail m => Text -> m (String, VersionConstraint)
parseSystemBuildTool = fmap fromCabal . cabalParse "system build tool" . T.unpack
where
fromCabal :: D.LegacyExeDependency -> (String, VersionConstraint)
Expand Down
3 changes: 2 additions & 1 deletion src/Hpack/Syntax/Dependencies.hs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ module Hpack.Syntax.Dependencies (
, parseDependency
) where

import qualified Control.Monad.Fail as Fail
import Data.Text (Text)
import qualified Data.Text as T
import Data.Semigroup (Semigroup(..))
Expand Down Expand Up @@ -59,7 +60,7 @@ objectDependencyInfo o = objectDependency o >>= addMixins o
dependencyInfo :: Value -> Parser DependencyInfo
dependencyInfo = withDependencyVersion (DependencyInfo []) addMixins

parseDependency :: Monad m => String -> Text -> m (String, DependencyVersion)
parseDependency :: Fail.MonadFail m => String -> Text -> m (String, DependencyVersion)
parseDependency subject = fmap fromCabal . cabalParse subject . T.unpack
where
fromCabal :: D.Dependency -> (String, DependencyVersion)
Expand Down
7 changes: 4 additions & 3 deletions src/Hpack/Syntax/DependencyVersion.hs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ module Hpack.Syntax.DependencyVersion (
) where

import Control.Applicative
import qualified Control.Monad.Fail as Fail
import Data.Maybe
import Data.Scientific
import Data.Text (Text)
Expand Down Expand Up @@ -140,13 +141,13 @@ scientificToVersion n = version
| otherwise = 0
e = base10Exponent n

parseVersionRange :: Monad m => String -> m VersionConstraint
parseVersionRange :: Fail.MonadFail m => String -> m VersionConstraint
parseVersionRange = fmap versionConstraintFromCabal . parseCabalVersionRange

parseCabalVersionRange :: Monad m => String -> m D.VersionRange
parseCabalVersionRange :: Fail.MonadFail m => String -> m D.VersionRange
parseCabalVersionRange = cabalParse "constraint"

cabalParse :: (Monad m, D.Parsec a) => String -> String -> m a
cabalParse :: (Fail.MonadFail m, D.Parsec a) => String -> String -> m a
cabalParse subject s = case D.eitherParsec s of
Right d -> return d
Left _ ->fail $ unwords ["invalid", subject, show s]
Expand Down

0 comments on commit 1549350

Please sign in to comment.