extensible-effects 1.7.1.1 → 1.7.1.2
raw patch · 3 files changed
+137/−23 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- LICENSE +20/−0
- README.md +25/−0
- extensible-effects.cabal +92/−23
+ LICENSE view
@@ -0,0 +1,20 @@+Copyright (c) 2014 Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa++Permission is hereby granted, free of charge, to any person obtaining+a copy of this software and associated documentation files (the+"Software"), to deal in the Software without restriction, including+without limitation the rights to use, copy, modify, merge, publish,+distribute, sublicense, and/or sell copies of the Software, and to+permit persons to whom the Software is furnished to do so, subject to+the following conditions:++The above copyright notice and this permission notice shall be included+in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ README.md view
@@ -0,0 +1,25 @@+extensible-effects is based on the work+[Extensible Effects: An Alternative to Monad Transformers](http://okmij.org/ftp/Haskell/extensible/).+Please read the [paper](http://okmij.org/ftp/Haskell/extensible/exteff.pdf) for details.++## Advantages++ * Effects can be added, removed, and interwoven without changes to code not+ dealing with those effects.++## Disadvantages++ * Common functions can't be grouped using typeclasses, e.g.+ the `ask` and `getState` functions can't be grouped with some++ class Get t a where+ ask :: Member (t a) r => Eff r a++ `ask` is inherently ambiguous, since the type signature only provides+ a constraint on `t`, and nothing more. To specify fully, a parameter+ involving the type `t` would need to be added, which would defeat the point+ of having the grouping in the first place.++ * Requires a `Typeable` instance on the return type.+ * Neither `Eff` nor `(:>)` has a `Typeable` instance, and can thus often not+ be used as a return type (e.g. `State` type) for other `Eff`s.
extensible-effects.cabal view
@@ -1,28 +1,64 @@-Name: extensible-effects-Version: 1.7.1.1-Synopsis: An Alternative to Monad Transformers-Description: This package introduces datatypes for typeclass-constrained effects,+name: extensible-effects++-- The package version. See the Haskell package versioning policy (PVP)+-- for standards guiding when and how versions should be incremented.+-- http://www.haskell.org/haskellwiki/Package_versioning_policy+-- PVP summary: +-+------- breaking API changes+-- | | +----- non-breaking API additions+-- | | | +--- code changes with no API change+version: 1.7.1.2++-- A short (one-line) description of the package.+synopsis: An Alternative to Monad Transformers++-- A longer description of the package.+description: This package introduces datatypes for typeclass-constrained effects, as an alternative to monad-transformer based (datatype-constrained) approach of multi-layered effects. For more information, see the original paper at <http://okmij.org/ftp/Haskell/extensible/exteff.pdf>. Any help is appreciated!-Category: Control, Effect-Author: Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa-Stability: Experimental-Homepage: https://github.com/RobotGymnast/extensible-effects-Maintainer: suhailshergill@gmail.com-License: MIT-Tested-With: GHC==7.8.2-Build-Type: Simple-Cabal-Version: >= 1.9.2 +stability: Experimental++-- URL for the project homepage or repository.+homepage: https://github.com/RobotGymnast/extensible-effects++-- The license under which the package is released.+license: MIT++-- The file containing the license text.+license-file: LICENSE++-- The package author(s).+author: Oleg Kiselyov, Amr Sabry, Cameron Swords, Ben Foppa++-- An email address to which users can send suggestions, bug reports, and+-- patches.+maintainer: suhailshergill@gmail.com++-- A copyright notice.+-- copyright:++category: Control, Effect++tested-with: GHC==7.8.2++build-type: Simple++-- Extra files to be distributed with the package, such as examples or a+-- README.+extra-source-files: README.md++-- Constraint on the version of Cabal needed to build this package.+cabal-version: >=1.10++ library- hs-source-dirs: src/- ghc-options: -Wall- extensions: Trustworthy- exposed-modules: Control.Eff+ ghc-options: -Wall+ -- Modules exported by the library.+ exposed-modules: Control.Eff Control.Eff.Choose Control.Eff.Coroutine Control.Eff.Cut@@ -38,12 +74,45 @@ Control.Eff.Trace Data.OpenUnion1 - build-depends: - base >= 4.6 && < 5- -- For MonadIO instance- , transformers >= 0.3 && < 0.5- -- For MonadBase instance- , transformers-base == 0.4.*+ -- Modules included in this library but not exported.+ -- other-modules:++ default-extensions: Trustworthy+ -- LANGUAGE extensions used by modules in this package.+ other-extensions: BangPatterns+ , CPP+ , DeriveDataTypeable+ , DeriveFunctor+ , EmptyDataDecls+ , ExistentialQuantification+ , FlexibleContexts+ , FlexibleInstances+ , FunctionalDependencies+ , GeneralizedNewtypeDeriving+ , KindSignatures+ , MultiParamTypeClasses+ , NoMonomorphismRestriction+ , OverlappingInstances+ , PatternGuards+ , PolyKinds+ , RankNTypes+ , ScopedTypeVariables+ , TupleSections+ , TypeOperators+ , UndecidableInstances++ -- Other library packages from which modules are imported.+ build-depends: base >= 4.6 && < 5+ -- For MonadIO instance+ , transformers >= 0.3 && < 0.5+ -- For MonadBase instance+ , transformers-base == 0.4.*++ -- Directories containing source files.+ hs-source-dirs: src++ -- Base language which the package is written in.+ default-language: Haskell2010 test-suite extensible-effects-tests type: exitcode-stdio-1.0