simple-effects 0.9.0.0 → 0.9.0.1
raw patch · 2 files changed
+66/−59 lines, 2 filesdep ~MonadRandomdep ~arraydep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: MonadRandom, array, base, criterion, exceptions, list-t, mtl, simple-effects, text, transformers
API changes (from Hackage documentation)
Files
- simple-effects.cabal +63/−57
- src/Control/Effects/Signal.hs +3/−2
simple-effects.cabal view
@@ -1,57 +1,63 @@-name: simple-effects -version: 0.9.0.0 -synopsis: A simple effect system that integrates with MTL -description: Please see README.md -homepage: https://gitlab.com/LukaHorvat/simple-effects -license: BSD3 -license-file: LICENSE -author: Luka Horvat -maintainer: luka.horvat9@gmail.com -copyright: 2016 Luka Horvat -category: Control -build-type: Simple -cabal-version: >=1.10 - -library - exposed-modules: Control.Effects - , Control.Effects.State - , Control.Effects.Reader - , Control.Effects.List - , Control.Effects.Signal - , Control.Effects.Early - , Control.Effects.Parallel - , Control.Monad.Runnable - other-modules: Import - hs-source-dirs: src - default-language: Haskell2010 - build-depends: base >= 4.7 && < 5 - , transformers - , mtl - , monad-control == 1.0.* - , transformers-base == 0.4.* - , list-t - , array - , MonadRandom - , exceptions - , text - ghc-options: -Wall - -test-suite tests - hs-source-dirs: test - main-is: Main.hs - default-language: Haskell2010 - type: exitcode-stdio-1.0 - build-depends: base >= 4.7 && < 5 - , simple-effects - ghc-options: -Wall -threaded -with-rtsopts=-N - -benchmark bench-effects - type: exitcode-stdio-1.0 - hs-source-dirs: bench - main-is: Bench.hs - build-depends: base - , criterion - , mtl - , transformers - , simple-effects - default-language: Haskell2010 +name: simple-effects+version: 0.9.0.1+cabal-version: >=1.10+build-type: Simple+license: BSD3+license-file: LICENSE+copyright: 2016 Luka Horvat+maintainer: luka.horvat9@gmail.com+homepage: https://gitlab.com/LukaHorvat/simple-effects+synopsis: A simple effect system that integrates with MTL+description:+ Please see README.md+category: Control+author: Luka Horvat++library+ exposed-modules:+ Control.Effects+ Control.Effects.State+ Control.Effects.Reader+ Control.Effects.List+ Control.Effects.Signal+ Control.Effects.Early+ Control.Effects.Parallel+ Control.Monad.Runnable+ build-depends:+ base >=4.7 && <5,+ transformers >=0.5.2.0,+ mtl >=2.2.1,+ monad-control ==1.0.*,+ transformers-base ==0.4.*,+ list-t >=1,+ array >=0.5.1.1,+ MonadRandom >=0.5.1,+ exceptions >=0.8.3,+ text >=1.2.2.1+ default-language: Haskell2010+ hs-source-dirs: src+ other-modules:+ Import+ ghc-options: -Wall++test-suite tests+ type: exitcode-stdio-1.0+ main-is: Main.hs+ build-depends:+ base >=4.7 && <5,+ simple-effects >=0.9.0.1+ default-language: Haskell2010+ hs-source-dirs: test+ ghc-options: -Wall -threaded -with-rtsopts=-N++benchmark bench-effects+ type: exitcode-stdio-1.0+ main-is: Bench.hs+ build-depends:+ base >=4.9.1.0,+ criterion >=1.1.4.0,+ mtl >=2.2.1,+ transformers >=0.5.2.0,+ simple-effects >=0.9.0.1+ default-language: Haskell2010+ hs-source-dirs: bench
src/Control/Effects/Signal.hs view
@@ -45,8 +45,9 @@ instance TypeError (UnhandledError a b) => MonadEffect (Signal a b) IO where effect = undefined -instance (Monad m, b ~ c) => MonadEffect (Signal a c) (EffectHandler (Signal a b) m) where - effect = effect @(Signal a b) +instance {-# OVERLAPPING #-} (Monad m, b ~ c) => + MonadEffect (Signal a c) (EffectHandler (Signal a b) m) where + effect msg = EffectHandler (ReaderT (($ msg) . getEffectWithKind)) signal :: MonadEffect (Signal a b) m => a -> m b signal a = getSignalRes <$> effect (SignalMsg a)