Popularity
6.1
Growing
Activity
0.0
Stable
19
4
0

Monthly Downloads: 24
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Control     Monads     Effects    
Latest version: v0.2

effects alternatives and similar packages

Based on the "effects" category.
Alternatively, view effects alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of effects or a related project?

Add another 'effects' Package

README

Control.Effects

Control.Effects is a Haskell library for programming with effects, like in the the Eff language by Andrej Bauer and Matija Pretnar. Effects can be used instead of monad transformers, they are designed to be easier to use and to define.

Installation

cabal install effects

Using effects

Here's an example how to use the state effect from Control.Effects.State.

example :: (Int, Int)
example = run $ do
  with (ref 5) $ \x -> do
    with (ref 10) $ \y -> do
      x =: (+) <$> get x <*> get y
      y =: (+) <$> get x <*> get y
      (,) <$> get x <*> get y

Every instance of an effect is given a name (x and y in this example), which makes is possible to easily mix several instances of the same effect.

For more examples see examples.hs. Another good example is the implementation of a parser by Jesse McDonald.