Skip to content
Snippets Groups Projects
Commit dbe5f392 authored by Ryan Scott's avatar Ryan Scott Committed by Herbert Valerio Riedel
Browse files

More MonadFail-related patches

parent bc67ea45
No related branches found
No related tags found
No related merge requests found
commit d8126acd23b70c225c591d40a18a1d6b7833bbab
Author: Ryan Scott <ryan.gl.scott@gmail.com>
Date: Fri Mar 29 06:46:04 2019 -0400
Adapt to base-4.13.0.0
diff --git a/Test/QuickCheck/Monadic.hs b/Test/QuickCheck/Monadic.hs
index a8f3043..23153f2 100644
--- a/Test/QuickCheck/Monadic.hs
+++ b/Test/QuickCheck/Monadic.hs
@@ -123,7 +123,9 @@ instance Applicative (PropertyM m) where
instance Monad m => Monad (PropertyM m) where
return = pure
(>>=) = bind
+#if !defined(NO_MONADFAIL) && !(MIN_VERSION_base(4,13,0))
fail = fail_
+#endif
#ifndef NO_MONADFAIL
instance Monad m => Fail.MonadFail (PropertyM m) where
commit 2af17569b389968b265de2932d4bd4010ad7d6c9
commit 7942c5ca3e28d2a546e5d351ded87f454655a58c
Author: Ryan Scott <ryan.gl.scott@gmail.com>
Date: Fri Mar 15 08:40:53 2019 -0400
Date: Fri Mar 29 13:57:16 2019 -0400
Adapt to base-4.13.0.0
......
name: exceptions
category: Control, Exceptions, Monad
version: 0.10.0
x-revision: 2
cabal-version: >= 1.8
license: BSD3
license-file: LICENSE
author: Edward A. Kmett
maintainer: Edward A. Kmett <ekmett@gmail.com>
stability: provisional
homepage: http://github.com/ekmett/exceptions/
bug-reports: http://github.com/ekmett/exceptions/issues
copyright: Copyright (C) 2013-2015 Edward A. Kmett
Copyright (C) 2012 Google Inc.
build-type: Simple
tested-with: GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
synopsis: Extensible optionally-pure exceptions
description: Extensible optionally-pure exceptions.
extra-source-files:
.travis.yml
.ghci
.gitignore
.vim.custom
travis/cabal-apt-install
travis/config
AUTHORS.markdown
README.markdown
CHANGELOG.markdown
source-repository head
type: git
location: git://github.com/ekmett/exceptions.git
library
build-depends:
base >= 4.3 && < 5,
stm >= 2.2 && < 3,
template-haskell >= 2.2 && < 2.15,
transformers >= 0.2 && < 0.6,
transformers-compat >= 0.3 && < 0.7,
mtl >= 2.0 && < 2.3
exposed-modules:
Control.Monad.Catch
Control.Monad.Catch.Pure
ghc-options: -Wall -fwarn-tabs -O2
hs-source-dirs: src
test-suite exceptions-tests
main-is: Tests.hs
other-modules:
Control.Monad.Catch
Control.Monad.Catch.Pure
Control.Monad.Catch.Tests
hs-source-dirs: src, tests
ghc-options: -Wall -fwarn-tabs
type: exitcode-stdio-1.0
build-depends:
base,
stm,
template-haskell,
transformers,
transformers-compat,
mtl >= 2.2,
test-framework >= 0.8 && < 0.9,
test-framework-hunit >= 0.3 && < 0.4,
test-framework-quickcheck2 >= 0.3 && < 0.4,
QuickCheck >= 2.5 && < 2.13
commit 3f975944a59e21e3bbe4cb52f466bb8ef1a26801
commit 5df9f75585a3f1aef9c4dfa593b6874e38f074dc
Author: Ryan Scott <ryan.gl.scott@gmail.com>
Date: Fri Mar 15 08:38:04 2019 -0400
Date: Tue Mar 26 19:48:10 2019 -0400
Adapt to base-4.13.0.0
diff --git a/src/Control/Monad/Catch/Pure.hs b/src/Control/Monad/Catch/Pure.hs
index 40f58ac..4e433b5 100644
index 72a8401..4e433b5 100644
--- a/src/Control/Monad/Catch/Pure.hs
+++ b/src/Control/Monad/Catch/Pure.hs
@@ -54,6 +54,7 @@ import Prelude hiding (catch, foldr)
import Control.Applicative
import Control.Monad.Catch
+import qualified Control.Monad.Fail as Fail
import Control.Monad.Reader as Reader
import Control.Monad.RWS
#if __GLASGOW_HASKELL__ < 710
@@ -109,6 +110,11 @@ instance Monad m => Monad (CatchT m) where
@@ -110,7 +110,9 @@ instance Monad m => Monad (CatchT m) where
CatchT m >>= k = CatchT $ m >>= \ea -> case ea of
Left e -> return (Left e)
Right a -> runCatchT (k a)
+#if !(MIN_VERSION_base(4,13,0))
+ fail = Fail.fail
fail = Fail.fail
+#endif
+
+instance Monad m => Fail.MonadFail (CatchT m) where
fail = CatchT . return . Left . toException . userError
instance MonadFix m => MonadFix (CatchT m) where
instance Monad m => Fail.MonadFail (CatchT m) where
fail = CatchT . return . Left . toException . userError
commit 1b8d1bc872df52f427b1a1b0ec494bc9c4b4c333
commit 08fd62bccfb0aa1f2248678c378453e065239259
Author: Ryan Scott <ryan.gl.scott@gmail.com>
Date: Sat Mar 16 11:33:08 2019 -0400
Date: Tue Mar 26 20:03:54 2019 -0400
Adapt to GHC 8.8
diff --git a/src/Data/Aeson/Config/Parser.hs b/src/Data/Aeson/Config/Parser.hs
index 5680bbd..e0a04c3 100644
--- a/src/Data/Aeson/Config/Parser.hs
+++ b/src/Data/Aeson/Config/Parser.hs
@@ -31,6 +31,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 ((<>))
@@ -61,7 +62,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
diff --git a/src/Hpack/Config.hs b/src/Hpack/Config.hs
index 5710b49..aba76b9 100644
--- a/src/Hpack/Config.hs
......@@ -37,8 +58,68 @@ index d3a69cb..4786a3b 100644
import qualified Data.License.Infer as Infer
diff --git a/src/Hpack/Syntax/BuildTools.hs b/src/Hpack/Syntax/BuildTools.hs
index a27819e..df6d917 100644
--- a/src/Hpack/Syntax/BuildTools.hs
+++ b/src/Hpack/Syntax/BuildTools.hs
@@ -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(..))
@@ -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)
@@ -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 {
@@ -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)
diff --git a/src/Hpack/Syntax/Dependencies.hs b/src/Hpack/Syntax/Dependencies.hs
index 14c09f7..fdd6671 100644
--- a/src/Hpack/Syntax/Dependencies.hs
+++ b/src/Hpack/Syntax/Dependencies.hs
@@ -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(..))
@@ -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)
diff --git a/src/Hpack/Syntax/DependencyVersion.hs b/src/Hpack/Syntax/DependencyVersion.hs
index cb8abcf..84a7b05 100644
index cb8abcf..7eef78c 100644
--- a/src/Hpack/Syntax/DependencyVersion.hs
+++ b/src/Hpack/Syntax/DependencyVersion.hs
@@ -1,3 +1,4 @@
......@@ -46,7 +127,15 @@ index cb8abcf..84a7b05 100644
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}
module Hpack.Syntax.DependencyVersion (
@@ -34,7 +35,12 @@ import Text.PrettyPrint (renderStyle, Style(..), Mode(..))
@@ -24,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)
@@ -34,7 +36,12 @@ import Text.PrettyPrint (renderStyle, Style(..), Mode(..))
import Distribution.Version (VersionRangeF(..))
import qualified Distribution.Text as D
import qualified Distribution.Version as D
......@@ -59,7 +148,24 @@ index cb8abcf..84a7b05 100644
import Data.Aeson.Config.FromValue
@@ -147,7 +153,13 @@ cabalParse subject s = case D.eitherParsec s of
@@ -133,13 +140,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]
@@ -147,7 +154,13 @@ cabalParse subject s = case D.eitherParsec s of
versionConstraintFromCabal :: D.VersionRange -> VersionConstraint
versionConstraintFromCabal range
| D.isAnyVersion range = AnyVersion
......
name: persistent
version: 2.9.1
x-revision: 1
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com>
maintainer: Michael Snoyman <michael@snoyman.com>, Greg Weber <greg@gregweber.info>
synopsis: Type-safe, multi-backend data serialization.
description: Hackage documentation generation is not reliable. For up to date documentation, please see: <http://www.stackage.org/package/persistent>.
category: Database, Yesod
stability: Stable
cabal-version: >= 1.8
build-type: Simple
homepage: http://www.yesodweb.com/book/persistent
bug-reports: https://github.com/yesodweb/persistent/issues
extra-source-files: ChangeLog.md README.md
flag nooverlap
default: False
description: test out our assumption that OverlappingInstances is just for String
library
if flag(nooverlap)
cpp-options: -DNO_OVERLAP
build-depends: base >= 4.8 && < 5
, bytestring >= 0.9
, transformers >= 0.2.1
, time >= 1.1.4
, old-locale
, text >= 0.8
, containers >= 0.2
, conduit >= 1.2.8
, resourcet >= 1.1.10
, resource-pool >= 0.2.2.0
, path-pieces >= 0.1
, http-api-data >= 0.2
, aeson >= 0.5
, monad-logger >= 0.3.28
, base64-bytestring
, unordered-containers
, vector
, attoparsec
, template-haskell
, blaze-html >= 0.5
, blaze-markup >= 0.5.1
, silently
, mtl
, fast-logger >= 2.1
, scientific
, tagged
, unliftio-core
, void
exposed-modules: Database.Persist
Database.Persist.Quasi
Database.Persist.Types
Database.Persist.Class
Database.Persist.Sql
Database.Persist.Sql.Util
Database.Persist.Sql.Types.Internal
other-modules: Database.Persist.Types.Base
Database.Persist.Class.DeleteCascade
Database.Persist.Class.PersistEntity
Database.Persist.Class.PersistQuery
Database.Persist.Class.PersistUnique
Database.Persist.Class.PersistConfig
Database.Persist.Class.PersistField
Database.Persist.Class.PersistStore
Database.Persist.Sql.Migration
Database.Persist.Sql.Internal
Database.Persist.Sql.Types
Database.Persist.Sql.Raw
Database.Persist.Sql.Run
Database.Persist.Sql.Class
Database.Persist.Sql.Orphan.PersistQuery
Database.Persist.Sql.Orphan.PersistStore
Database.Persist.Sql.Orphan.PersistUnique
ghc-options: -Wall
test-suite test
type: exitcode-stdio-1.0
main-is: test/main.hs
build-depends: base >= 4.8 && < 5
, hspec >= 1.3
, containers
, text
, unordered-containers
, time
, old-locale
, bytestring
, vector
, base64-bytestring
, attoparsec
, transformers
, path-pieces
, http-api-data
, aeson
, resourcet
, monad-logger
, conduit
, monad-control
, blaze-html
, scientific
, tagged
, fast-logger >= 2.1
, mtl
, template-haskell
, resource-pool
cpp-options: -DTEST
other-modules: Database.Persist.Class.PersistEntity
Database.Persist.Class.PersistField
Database.Persist.Quasi
Database.Persist.Types
Database.Persist.Types.Base
source-repository head
type: git
location: git://github.com/yesodweb/persistent.git
diff -ru persistent-2.9.1.orig/Database/Persist/Types/Base.hs persistent-2.9.1/Database/Persist/Types/Base.hs
--- persistent-2.9.1.orig/Database/Persist/Types/Base.hs 2018-07-15 00:56:03.000000000 -0400
+++ persistent-2.9.1/Database/Persist/Types/Base.hs 2019-03-16 08:51:22.261213560 -0400
diff -ru persistent-2.9.2.orig/Database/Persist/Types/Base.hs persistent-2.9.2/Database/Persist/Types/Base.hs
--- persistent-2.9.2.orig/Database/Persist/Types/Base.hs 2019-04-03 23:02:38.000000000 -0400
+++ persistent-2.9.2/Database/Persist/Types/Base.hs 2019-04-08 07:43:42.309646084 -0400
@@ -8,6 +8,7 @@
import Control.Exception (Exception)
import Web.PathPieces (PathPiece(..))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment