effin 0.1.0.0 → 0.1.0.1
raw patch · 1 files changed
+31/−4 lines, 1 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- effin.cabal +31/−4
effin.cabal view
@@ -1,17 +1,44 @@ name: effin-version: 0.1.0.0+version: 0.1.0.1 synopsis: A Typeable-free implementation of extensible effects-description: A Typeable-free implementation of extensible effects homepage: https://github.com/YellPika/effin license: BSD3 license-file: LICENSE author: Anthony Vandikas maintainer: yellpika@gmail.com copyright: (c) 2014 Anthony Vandikas-category: Control+category: Control, Effect build-type: Simple--- extra-source-files: cabal-version: >=1.10+description:+ This package implements extensible effects, and alternative to monad+ transformers. The original paper can be found at+ <http://okmij.org/ftp/Haskell/extensible/exteff.pdf>. The main differences+ between this library and the one described in the paper are that this library+ does not use the Typeable type class, and has a simpler API for handling+ effects.+ .+ For example, the following code implements a handler for exceptions:+ .+ > runException :: Effect (Exception e ': es) a -> Effect es (Either e a)+ > runException =+ > handle (\x -> return (Right x))+ > $ eliminate (\(Exception e) -> return (Left e))+ > $ defaultRelay+ .+ Compare this to the corresponding code in extensible-effects:+ .+ > runExc :: Typeable e => Eff (Exc e :> r) a -> Eff r (Either e a)+ > runExc = loop . admin+ > where+ > loop (Val x) = return (Right x)+ > loop (E u) = handleRelay u loop (\(Exc e) -> return (Left e))+ .+ In particular:+ .+ * Effect implementors are not required to do any recursion.+ .+ * The functions for writing effect handlers can be easily composed. flag mtl description: Enable MTL support