homepage: https://github.com/xnning/eveff#readme
changelog-type: markdown
hash: 65ca5d712b842142bcf291b4b5ca72e08a80a468a7a6b7ac0b4cbf633f68ccf2
test-bench-deps: {}
maintainer: xnning@hku.hk;daan@microsoft.com
synopsis: Efficient effect handlers based on evidence translation.
changelog: |
  # 0.1.0.0

  * Initial release.
basic-deps:
  base: '>=4.7 && <5'
  ghc-prim: -any
  primitive: -any
all-versions:
- 0.1.0.0
author: Daan Leijen, Ningning Xie
latest: 0.1.0.0
description-type: markdown
description: "# EvEff: Efficient effect handlers based on Evidence translation\n\nEfficient
  effect handlers based on evidence translation [1]. \nThe interface and design is
  described in detail in \n\"[_Effect Handlers in Haskell, Evidently_](https://www.microsoft.com/en-us/research/publication/effect-handlers-in-haskell-evidently)\",
  \nNingning Xie and Daan Leijen, Haskell 2020.\n\nAn example of defining and using
  a `Reader` effect:\n\n```Haskell\n{-# LANGUAGE  TypeOperators, FlexibleContexts,
  Rank2Types #-}\nimport Control.Ev.Eff\n\n-- A @Reader@ effect definition with one
  operation @ask@ of type @()@ to @a@.\ndata Reader a e ans = Reader{ ask :: Op ()
  a e ans }\n\ngreet :: (Reader String :? e) => Eff e String\ngreet = do s <- perform
  ask ()\n           return (\"hello \" ++ s)\n\ntest :: String\ntest = runEff $\n
  \      handler (Reader{ ask = value \"world\" }) $  -- @:: Reader String () Int@\n
  \      do s <- greet                              -- executes in context @:: Eff
  (Reader String :* ()) Int@\n          return (length s)\n```\n\nEnjoy,  \n  Daan
  Leijen and Ningning Xie,  May 2020.\n\n\n[1] \"_Effect Handlers, Evidently_\", Ningning
  Xie _et al._, ICFP 2020  [(pdf)](https://www.microsoft.com/en-us/research/publication/effect-handlers-evidently).\n"
license-name: MIT

Update from Hackage at 2020-08-21T12:38:03Z
Update from Hackage at 2020-08-21T12:38:03Z
