packages feed

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 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)