packages feed

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 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@.