All Versions
26
Latest Version
Avg Release Cycle
41 days
Latest Release
13 days ago

Changelog History
Page 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
  • v1.1.0.0 Changes

    August 15, 2019

    ๐Ÿ’ฅ Breaking Changes

    • MonadFail is now implemented in terms of Fail, instead of NonDet (thanks to @KingoftheHomeless)
    • ๐Ÿšš LastMember has been removed. withLowerToIO and all interpreters that make use of it now only requires Member (Embed IO) r (thanks to @KingoftheHomeless)
    • ๐Ÿ‘ State and Writer now have better strictness semantics

    Other Changes

    • โž• Added AtomicState effect (thanks to @KingoftheHomeless)
    • โž• Added Fail effect (thanks to @KingoftheHomeless)
    • โž• Added runOutputSem (thanks to @cnr)
    • โž• Added modify', a strict variant of modify (thanks to @KingoftheHomeless)
    • โž• Added right-associative variants of runOutputMonoid and runWriter (thanks to @KingoftheHomeless)
    • โž• Added runOutputMonoidIORef and runOutputMonoidTVar (thanks to @KingoftheHomeless)
    • ๐Ÿ‘Œ Improved Fixpoint so it won't always diverge (thanks to @KingoftheHomeless)
    • makeSem will now complain if DataKinds isn't enabled (thanks to @pepegar)