All Versions
27
Latest Version
Avg Release Cycle
40 days
Latest Release
668 days ago

Changelog History
Page 1

  • v1.7.1.0 Changes

    November 23, 2021

    Other Changes

    • 👌 Support GHC 9.2.1
  • v1.7.0.0 Changes

    November 16, 2021

    💥 Breaking Changes

    • ➕ Added interpreters for AtomicState that run in terms of State.
    • ✂ Removed MemberWithError
    • ✂ Removed DefiningModule

    Other Changes

    • The internal ElemOf proof is now implemented as an unsafe integer, significantly cutting down on generated core.
    • Polysemy no longer emits custom type errors for ambiguous effect actions. These have long been rendered moot by polysemy-plugin, and the cases that they still exist are usually overeager (and wrong.)
    • As a result, the core produced by polysemy is significantly smaller. Programs should see a reduction of ~20% in terms and types, and ~60% in coercions.
  • v1.6.0.0 Changes

    July 12, 2021

    💥 Breaking Changes

    • 🗄 Deprecate traceToIO and replace it with traceToStdout and traceToStderr
    • 👌 Support GHC 9.0.1

    Other Changes

    • ➕ Added the combinator insertAt, which allows adding effects at a specified index into the effect stack
    • ➕ Added Semigroup and Monoid for Sem
  • v1.5.0.0 Changes

    March 30, 2021

    💥 Breaking Changes

    • ⬇️ Dropped support for GHC 8.4

    Other Changes

    • ➕ Added InterpretersFor as a shorthand for interpreters consuming multiple effects
    • ➕ Added runTSimple and bindTSimple, which are simplified variants of runT and bindT
  • v1.4.0.0 Changes

    October 31, 2020

    💥 Breaking Changes

    • ➕ Added Polysemy.Async.cancel to allow cancelling Async action (possible name collision) (#321, thanks to @aidangilmore)

    Other Changes

    • ➕ Added Polysemy.Input.inputs to mirror Polysemy.Reader.asks (#327, thanks to @expipiplus1)
    • ➕ Added Polysemy.Resource.bracket_ (#335, thanks to @expipiplus1)
    • 👌 Support GHC 8.10.x (#337, #382)
    • Restrict the existentially quantified monad in a Weaving to Sem r (#333, thanks to @A1kmm)
    • ➕ Added raise2Under and raise3Under (#369)
    • ➕ Added Raise and Subsume (#370)
    • 🛠 Fixed memory leaks in Applicative (Sem r) methods (#372, thanks to @goertzenator)
    • 🛠 Smaller suggestions and fixes (thanks to @jeremyschlatter, @galagora and @felixonmars)
  • v1.3.0.0 Changes

    February 14, 2020

    💥 Breaking Changes

    • The semantics for runNonDet when <|> is used inside a higher-order action of another effect has been reverted to that of 1.1.0.0 and earlier. (See issue #246)
    • Type parameters for outputToTrace have been rearranged (thanks to @juanpaucar)

    Other Changes

    • ➕ Added Bundle effect, for bundling multiple effects into a single one.
    • ➕ Added Tagged effect, for annotating and disambiguating identical effects.
    • ➕ Added View effect, an Input-like effect for caching an expensive computation.
    • ➕ Added fromException/Via and fromExceptionSem/Via
    • ➕ Added note
    • ➕ Added catchJust, try and tryJust (thanks to @bolt12)
    • Using listen with runWriterTVar or writerToIO will no longer delay writing until the listen completes.
    • ➕ Added runStateSTRef and stateToST (thanks to @incertia)
    • ➕ Added execState and execLazyState (thanks to @tjweir)
    • ➕ Added Polysemy.Law, which offers machinery for creating laws for effects.
    • ➕ Added Polysemy.Membership for retrieving and making use of effect membership proofs.
  • v1.2.3.0 Changes

    October 29, 2019
    • Polysemy now works on GHC 8.8.1 (thanks to @googleson78 and @sevanspowell)
    • Exported MemberWithError from Polysemy
    • ➕ Added rewrite and transform interpretation combinators
  • v1.2.2.0 Changes

    October 22, 2019
    • 🛠 Fixed a bug in resourceToIO and resourceToIOFinal that prevented the finalizers from being called in BracketOnError when the computation failed due to a Sem failure
    • ➕ Added atomicGets (thanks to @googleson78)
    • ➕ Added sequenceConcurrently to Polysemy.Async (thanks to @spacekitteh)
  • v1.2.1.0 Changes

    September 15, 2019
    • ➕ Added InterpreterFor (thanks to @bolt12)
    • ⬆️ Bumped bounds for first-class-families
  • v1.2.0.0 Changes

    September 04, 2019

    💥 Breaking Changes

    • 🗄 All lower- interpreters have been deprecated, in favor of corresponding -Final interpreters.
    • 🗄 runFixpoint and runFixpointM have been deprecated in favor of fixpointToFinal.
    • The semantics for runNonDet when <|> is used inside a higher-order action of another effect has been changed.
    • Type variables for certain internal functions, failToEmbed, and atomicState' have been rearranged.

    Other changes

    • ➕ Added Final effect, an effect for embedding higher-order actions in the final monad of the effect stack. Any interpreter should use this instead of requiring to be provided an explicit lowering function to the final monad.
    • ➕ Added Strategy environment for use together with Final
    • ➕ Added asyncToIOFinal, a better alternative of lowerAsync
    • ➕ Added errorToIOFinal, a better alternative of lowerError
    • ➕ Added fixpointToFinal, a better alternative of runFixpoint and runFixpointM
    • ➕ Added resourceToIOFinal, a better alternative of lowerResource
    • ➕ Added outputToIOMonoid and outputToIOMonoidAssocR
    • ➕ Added stateToIO
    • ➕ Added atomicStateToIO
    • ➕ Added runWriterTVar, writerToIOFinal, and writerToIOAssocRFinal
    • ➕ Added writerToEndoWriter
    • ➕ Added subsume operation
    • 🔦 Exposed raiseUnder/2/3 in Polysemy