haskus-utils-variant 3.1 → 3.2
raw patch · 3 files changed
+20/−3 lines, 3 filesdep +mtlPVP ok
version bump matches the API change (PVP)
Dependencies added: mtl
API changes (from Hackage documentation)
- Haskus.Utils.Variant.Excepts: data Excepts es m a
+ Haskus.Utils.Variant.Excepts: Excepts :: m (VEither es a) -> Excepts es m a
+ Haskus.Utils.Variant.Excepts: instance Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Haskus.Utils.Variant.Excepts.Excepts e m)
+ Haskus.Utils.Variant.Excepts: newtype Excepts es m a
Files
- haskus-utils-variant.cabal +2/−1
- src/lib/Haskus/Utils/EADT/TH.hs +10/−1
- src/lib/Haskus/Utils/Variant/Excepts.hs +8/−1
haskus-utils-variant.cabal view
@@ -1,5 +1,5 @@ name: haskus-utils-variant-version: 3.1+version: 3.2 synopsis: Variant and EADT license: BSD3 license-file: LICENSE@@ -41,6 +41,7 @@ , template-haskell , haskus-utils-types >= 1.5 , haskus-utils-data >= 1.2+ , mtl >= 2.2 ghc-options: -Wall default-language: Haskell2010
src/lib/Haskus/Utils/EADT/TH.hs view
@@ -131,7 +131,12 @@ xs -> fail $ "Infix pattern should have exactly two parameters (found " ++ show (length xs) ++ ")" let pat = PatSynD patName args ImplBidir+#if MIN_VERSION_base(4,16,0)+ -- handle new field for type-applications in patterns+ (ConP vf [] [ConP consName [] (fmap VarP conArgs)])+#else (ConP vf [ConP consName (fmap VarP conArgs)])+#endif let -- retrieve constructor type without the functor var@@ -149,7 +154,11 @@ tyToTyList = AppT ListT (AppT (AppT ArrowT StarT) StarT) -- retrieve functor var in "e"-#if MIN_VERSION_base(4,15,0)+#if MIN_VERSION_base(4,16,0)+ e = case last tvs of+ KindedTV nm _ _ -> nm+ PlainTV nm _ -> nm+#elif MIN_VERSION_base(4,15,0) KindedTV e _ StarT = last tvs #else KindedTV e StarT = last tvs
src/lib/Haskus/Utils/Variant/Excepts.hs view
@@ -12,9 +12,11 @@ {-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-} module Haskus.Utils.Variant.Excepts- ( Excepts+ ( Excepts (..) , runE , runE_ , liftE@@ -53,6 +55,7 @@ import Haskus.Utils.Variant.VEither import Control.Monad.Catch+import Control.Monad.Reader.Class #if MIN_VERSION_base(4,12,0) && !MIN_VERSION_base(4,13,0) import qualified Control.Monad.Fail import Control.Monad.Fail ( MonadFail )@@ -211,6 +214,10 @@ b <- Excepts (return eb) return (b, c) +instance MonadReader r m => MonadReader r (Excepts e m) where+ ask = lift ask+ local = mapExcepts . local+ reader = lift . reader -- | Signal an exception value @e@.