packages feed

extensible-effects 2.5.1.2 → 2.5.2.0

raw patch · 10 files changed

+49/−22 lines, 10 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Control.Eff.Example: sum2 :: Member (Reader Int) r => Member (Reader Float) r => Eff r Float
+ Control.Eff.Example: sum2 :: ([Reader Int, Reader Float] <:: r) => Eff r Float
- Control.Eff.Example: writeAndAdd :: (Member (Writer a) e, Member (State a) e, Num a) => [a] -> Eff e ()
+ Control.Eff.Example: writeAndAdd :: ([Writer a, State a] <:: e, Num a) => [a] -> Eff e ()

Files

extensible-effects.cabal view
@@ -6,7 +6,7 @@ -- PVP summary:      +-+------- breaking API changes --                   | | +----- non-breaking API additions --                   | | | +--- code changes with no API change-version:             2.5.1.2+version:             2.5.2.0  -- A short (one-line) description of the package. synopsis:            An Alternative to Monad Transformers
src/Control/Eff/Example.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS_GHC -Werror #-}+{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE TypeOperators, GADTs, DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE Safe #-}@@ -25,9 +25,9 @@ -- }}}  -- | Multiple Reader effects-sum2 :: Member (Reader Int) r-     => Member (Reader Float) r-     => Eff r Float+sum2 :: ([ Reader Int+         , Reader Float+         ] <:: r) => Eff r Float sum2 = do   v1 <- ask   v2 <- ask@@ -46,7 +46,10 @@ sumAll = mapM_ (modify . (+))  -- | Write a list of numbers and add them to the current state.-writeAndAdd :: (Member (Writer a) e, Member (State a) e, Num a)+writeAndAdd :: ( [ Writer a+                 , State a+                 ] <:: e+               , Num a)             => [a]             -> Eff e () writeAndAdd l = do
src/Control/Eff/Internal.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -Werror #-} {-# LANGUAGE Trustworthy #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-}
src/Control/Eff/NdetEff.hs view
@@ -1,5 +1,6 @@+{-# OPTIONS_GHC -fno-warn-orphans #-}+ {-# LANGUAGE TypeFamilies #-}-{-# OPTIONS_GHC -Werror -fno-warn-orphans #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-}
src/Control/Eff/State/Lazy.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -Werror #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE DataKinds #-}
src/Control/Eff/State/OnDemand.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -Werror #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE DataKinds #-}
src/Control/Eff/State/Strict.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -Werror #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE BangPatterns #-}
src/Control/Eff/Trace.hs view
@@ -1,4 +1,3 @@-{-# OPTIONS_GHC -Werror #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE FlexibleContexts #-}
src/Data/OpenUnion.hs view
@@ -1,18 +1,22 @@ {-# OPTIONS_HADDOCK show-extensions #-}+{-# OPTIONS_GHC -Wwarn #-}  {-# LANGUAGE CPP #-} -{-# LANGUAGE TypeFamilies, TypeOperators #-}+{-# LANGUAGE ConstraintKinds #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GADTs #-}-{-# LANGUAGE DataKinds, PolyKinds #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE PolyKinds #-} {-# LANGUAGE ScopedTypeVariables #-}-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, FlexibleContexts #-} {-# LANGUAGE Trustworthy #-}-{-# OPTIONS_GHC -Wwarn #-}+{-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE TypeOperators #-}  #if __GLASGOW_HASKELL__ < 710 || FORCE_OU51 {-# LANGUAGE OverlappingInstances #-}-#else #endif  -- Only for SetMember below, when emulating Monad Transformers@@ -51,13 +55,23 @@ -- type t in the list r as the TRep. (We will need UnsafeCoerce then). -- -- The interface is the same as of other OpenUnion*.hs-module Data.OpenUnion (Union, inj, prj, decomp,-                   Member, SetMember, weaken-                  ) where+module Data.OpenUnion ( Union+                      , inj+                      , prj+                      , decomp+                      , Member+                      , SetMember+                      , type(<::)+                      , weaken+                      ) where  import Unsafe.Coerce(unsafeCoerce)+ #if __GLASGOW_HASKELL__ > 800+import Data.Kind (Constraint) import GHC.TypeLits+#else+import GHC.Exts (Constraint) #endif  -- | The data constructors of Union are not exported@@ -124,6 +138,22 @@   inj = inj' (unP $ (elemNo :: P t r))   prj = prj' (unP $ (elemNo :: P t r)) #endif++-- | A useful operator for reducing boilerplate.+--+-- @+-- f :: [Reader Int, Writer String] ::> r+--   => a -> Eff r b+-- @+-- is equal to+--+-- @+-- f :: (Member (Reader Int) r, Member (Writer String) r)+--   => a -> Eff r b+-- @+type family (<::) (ms :: [* -> *]) r where+  (<::) '[] r = (() :: Constraint)+  (<::) (m ': ms) r = (Member m r, (<::) ms r)  {-# INLINE [2] decomp #-} decomp :: Union (t ': r) v -> Either (Union r v) (t v)
test/Utils.hs view
@@ -1,5 +1,3 @@-{-# OPTIONS_GHC -Werror #-}- module Utils where  import Control.Exception (ErrorCall, catch)