2019-04-14 22:07:37 +03:00
|
|
|
# Changelog for polysemy
|
|
|
|
|
2021-04-09 19:35:59 +03:00
|
|
|
## Unreleased
|
|
|
|
|
2021-03-31 01:07:39 +03:00
|
|
|
### Breaking Changes
|
|
|
|
|
2022-12-22 20:25:20 +03:00
|
|
|
### Other Changes
|
|
|
|
|
2022-12-28 17:32:14 +03:00
|
|
|
## 1.9.0.0 (2022-12-28)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
- Slightly modified the signatures of the various `Scoped` interpreters.
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
- Added `runScopedNew`, a simple but powerful `Scoped` interpreter.
|
|
|
|
`runScopedNew` can be considered a sneak-peek of the future of `Scoped`,
|
|
|
|
which will eventually receive a major API rework to make it both simpler and
|
|
|
|
more expressive.
|
|
|
|
- Fixed a bug in various `Scoped` interpreters where a `scoped` usage of an
|
|
|
|
effect always relied on the nearest enclosing use of `scoped` from the same
|
|
|
|
`Scoped` effect, rather than the `scoped` which handles the effect.
|
|
|
|
- Added `Polysemy.Opaque`, a module for the `Opaque` effect newtype, meant as
|
|
|
|
a tool to wrap polymorphic effect variables so they don't jam up resolution of
|
|
|
|
`Member` constraints.
|
2022-12-28 17:40:13 +03:00
|
|
|
- Expose the type alias `Scoped_` for a scoped effect without callsite parameters.
|
2022-12-22 20:25:20 +03:00
|
|
|
|
|
|
|
## 1.8.0.0 (2022-12-22)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
2021-11-29 20:30:38 +03:00
|
|
|
- Removed `Polysemy.View`
|
2021-11-29 00:07:48 +03:00
|
|
|
- Removed `Polysemy.Law`
|
2021-12-01 20:59:18 +03:00
|
|
|
- Removed `(@)` and `(@@)` from `Polysemy`
|
|
|
|
- Removed `withLowerToIO` from `Polysemy`. Use `withWeavingToFinal` instead.
|
|
|
|
- Removed `asyncToIO` and `lowerAsync` from `Polysemy.Async`. Use
|
|
|
|
`asyncToIOFinal` instead.
|
|
|
|
- Removed `lowerEmbedded` from `Polysemy.IO`. Use `embedToMonadIO` instead.
|
|
|
|
- Removed `lowerError` from `Polysemy.Error`. Use `errorToIOFinal` instead.
|
|
|
|
- Removed `resourceToIO` and `lowerResource` from `Polysemy.Resource`. Use
|
|
|
|
`resourceToIOFinal` instead.
|
|
|
|
- Removed `runFixpoint` and `runFixpointM` from `Polysemy.Fixpoint`. Use
|
|
|
|
`fixpointToFinal` instead.
|
2022-01-19 14:34:00 +03:00
|
|
|
- Changed semantics of `errorToIOFinal` so that it no longer catches errors
|
|
|
|
from other handlers of the same type.
|
2022-12-02 03:58:12 +03:00
|
|
|
- The semantics of `runScoped` has been changed so that the provided interpreter
|
|
|
|
is now used only once per use of `scoped`, instead of each individual action.
|
2021-11-29 00:07:48 +03:00
|
|
|
|
2021-03-31 01:07:39 +03:00
|
|
|
### Other Changes
|
|
|
|
|
2021-12-01 20:59:18 +03:00
|
|
|
- Exposed `send` from `Polysemy`.
|
2022-12-22 20:25:20 +03:00
|
|
|
- Dramatically improved build performance of projects when compiling with `-O2`.
|
|
|
|
- Removed the debug `dump-core` flag.
|
2022-12-22 20:51:52 +03:00
|
|
|
- Introduced the new meta-effect `Scoped`, which allows running an interpreter locally whose implementation is deferred
|
|
|
|
to a later stage.
|
2022-12-02 03:58:12 +03:00
|
|
|
- Fixed a bug in various `Scoped` interpreters where any explicit recursive
|
|
|
|
interpretation of higher-order computations that the handler may perform are
|
|
|
|
ignored by the interpreter, and the original handler was reused instead.
|
2021-12-01 20:59:18 +03:00
|
|
|
|
2021-11-23 20:41:58 +03:00
|
|
|
## 1.7.1.0 (2021-11-23)
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
* Support GHC 9.2.1
|
2021-11-17 02:10:50 +03:00
|
|
|
|
|
|
|
## 1.7.0.0 (2021-11-16)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
2021-03-31 01:07:39 +03:00
|
|
|
* Added interpreters for `AtomicState` that run in terms of `State`.
|
2021-11-17 02:10:50 +03:00
|
|
|
* 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.
|
2021-03-31 01:07:39 +03:00
|
|
|
|
2021-06-25 22:58:30 +03:00
|
|
|
## 1.6.0.0 (2021-07-12)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
2021-04-09 19:35:59 +03:00
|
|
|
* Deprecate `traceToIO` and replace it with `traceToStdout` and `traceToStderr`
|
2021-05-03 17:56:41 +03:00
|
|
|
* Support GHC 9.0.1
|
2021-06-25 22:58:30 +03:00
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
2021-04-21 00:33:42 +03:00
|
|
|
* Added the combinator `insertAt`, which allows adding effects at a specified index into the effect stack
|
2021-06-25 22:58:30 +03:00
|
|
|
* Added `Semigroup` and `Monoid` for `Sem`
|
2021-04-09 19:35:59 +03:00
|
|
|
|
2021-03-30 20:51:37 +03:00
|
|
|
## 1.5.0.0 (2021-03-30)
|
2020-02-13 23:21:32 +03:00
|
|
|
|
2021-03-30 20:51:37 +03:00
|
|
|
### Breaking Changes
|
|
|
|
* Dropped support for GHC 8.4
|
|
|
|
|
|
|
|
### Other Changes
|
2020-11-18 22:46:14 +03:00
|
|
|
- Added `InterpretersFor` as a shorthand for interpreters consuming multiple effects
|
|
|
|
- Added `runTSimple` and `bindTSimple`, which are simplified variants of `runT` and `bindT`
|
2020-06-09 00:01:05 +03:00
|
|
|
|
2020-11-01 00:47:25 +03:00
|
|
|
## 1.4.0.0 (2020-10-31)
|
2020-06-09 00:01:05 +03:00
|
|
|
|
2020-11-01 00:47:25 +03:00
|
|
|
### Breaking Changes
|
|
|
|
- Added `Polysemy.Async.cancel` to allow cancelling `Async` action (possible name collision)
|
|
|
|
([#321](https://github.com/polysemy-research/polysemy/pull/321), thanks to @aidangilmore)
|
2020-06-15 07:48:13 +03:00
|
|
|
|
2020-11-01 00:47:25 +03:00
|
|
|
### Other Changes
|
|
|
|
- Added `Polysemy.Input.inputs` to mirror `Polysemy.Reader.asks`
|
|
|
|
([#327](https://github.com/polysemy-research/polysemy/issues/327), thanks to @expipiplus1)
|
|
|
|
- Added `Polysemy.Resource.bracket_`
|
|
|
|
([#335](https://github.com/polysemy-research/polysemy/pull/335), thanks to @expipiplus1)
|
|
|
|
- Support GHC 8.10.x
|
|
|
|
([#337](https://github.com/polysemy-research/polysemy/pull/337), [#382](https://github.com/polysemy-research/polysemy/pull/382))
|
|
|
|
- Restrict the existentially quantified monad in a `Weaving` to `Sem r`
|
|
|
|
([#333](https://github.com/polysemy-research/polysemy/pull/333), thanks to @A1kmm)
|
2021-11-17 02:10:50 +03:00
|
|
|
- Added `raise2Under` and `raise3Under`
|
2020-11-01 00:47:25 +03:00
|
|
|
([#369](https://github.com/polysemy-research/polysemy/pull/369))
|
|
|
|
- Added `Raise` and `Subsume`
|
|
|
|
([#370](https://github.com/polysemy-research/polysemy/pull/370))
|
|
|
|
- Fixed memory leaks in `Applicative (Sem r)` methods
|
|
|
|
([#372](https://github.com/polysemy-research/polysemy/pull/372), thanks to @goertzenator)
|
|
|
|
- Smaller suggestions and fixes (thanks to @jeremyschlatter, @galagora and @felixonmars)
|
2020-06-17 18:04:06 +03:00
|
|
|
|
2020-02-13 23:21:32 +03:00
|
|
|
## 1.3.0.0 (2020-02-14)
|
|
|
|
|
|
|
|
### 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](https://github.com/polysemy-research/polysemy/issues/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.
|
2020-02-16 15:47:36 +03:00
|
|
|
- Added `View` effect, an `Input`-like effect for caching an expensive
|
|
|
|
computation.
|
2020-02-13 23:21:32 +03:00
|
|
|
- Added `fromException`/`Via` and `fromExceptionSem`/`Via`
|
|
|
|
- Added `note`
|
2020-02-16 15:47:36 +03:00
|
|
|
- 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)
|
2020-02-13 23:21:32 +03:00
|
|
|
- Added `Polysemy.Law`, which offers machinery for creating laws for effects.
|
|
|
|
- Added `Polysemy.Membership` for retrieving and making use of effect membership
|
|
|
|
proofs.
|
|
|
|
|
2019-10-29 15:19:26 +03:00
|
|
|
## 1.2.3.0 (2019-10-29)
|
|
|
|
|
|
|
|
- Polysemy now works on GHC 8.8.1 (thanks to @googleson78 and @sevanspowell)
|
|
|
|
- Exported `MemberWithError` from `Polysemy`
|
|
|
|
- Added `rewrite` and `transform` interpretation combinators
|
|
|
|
|
2019-10-22 20:40:16 +03:00
|
|
|
## 1.2.2.0 (2019-10-22)
|
|
|
|
|
|
|
|
- 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)
|
|
|
|
|
2019-09-15 22:42:33 +03:00
|
|
|
## 1.2.1.0 (2019-09-15)
|
2019-09-15 22:40:31 +03:00
|
|
|
|
2019-09-15 22:42:33 +03:00
|
|
|
- Added `InterpreterFor` (thanks to @bolt12)
|
2019-09-15 22:40:31 +03:00
|
|
|
- Bumped bounds for first-class-families
|
2019-08-30 23:38:53 +03:00
|
|
|
|
2019-09-04 21:18:40 +03:00
|
|
|
## 1.2.0.0 (2019-09-04)
|
2019-08-30 23:38:53 +03:00
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- All `lower-` interpreters have been deprecated, in favor of corresponding
|
|
|
|
`-Final` interpreters.
|
2019-09-04 21:18:40 +03:00
|
|
|
- `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.
|
2019-08-30 23:38:53 +03:00
|
|
|
|
2020-02-13 23:21:32 +03:00
|
|
|
### Other changes
|
2019-08-30 23:38:53 +03:00
|
|
|
|
|
|
|
- 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`
|
2019-09-02 07:45:53 +03:00
|
|
|
- Added `stateToIO`
|
|
|
|
- Added `atomicStateToIO`
|
2019-08-30 23:38:53 +03:00
|
|
|
- Added `runWriterTVar`, `writerToIOFinal`, and `writerToIOAssocRFinal`
|
|
|
|
- Added `writerToEndoWriter`
|
|
|
|
- Added `subsume` operation
|
|
|
|
- Exposed `raiseUnder`/`2`/`3` in `Polysemy`
|
|
|
|
|
|
|
|
|
2019-08-16 00:30:06 +03:00
|
|
|
## 1.1.0.0 (2019-08-15)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
2019-08-16 08:13:57 +03:00
|
|
|
- `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)
|
2019-08-16 00:30:06 +03:00
|
|
|
- `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)
|
2019-08-16 08:26:57 +03:00
|
|
|
- Added `modify'`, a strict variant of `modify` (thanks to @KingoftheHomeless)
|
2019-08-16 00:30:06 +03:00
|
|
|
- Added right-associative variants of `runOutputMonoid` and `runWriter` (thanks to @KingoftheHomeless)
|
2019-08-16 08:13:57 +03:00
|
|
|
- Added `runOutputMonoidIORef` and `runOutputMonoidTVar` (thanks to @KingoftheHomeless)
|
2019-08-16 00:30:06 +03:00
|
|
|
- Improved `Fixpoint` so it won't always diverge (thanks to @KingoftheHomeless)
|
|
|
|
- `makeSem` will now complain if `DataKinds` isn't enabled (thanks to @pepegar)
|
|
|
|
|
|
|
|
|
2019-07-24 17:45:42 +03:00
|
|
|
## 1.0.0.0 (2019-07-24)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- Renamed `Lift` to `Embed` (thanks to @googleson78)
|
|
|
|
- Renamed `runAsyncInIO` to `lowerAsync`
|
|
|
|
- Renamed `runAsync` to `asyncToIO`
|
|
|
|
- Renamed `runBatchOutput` to `runOutputBatched`
|
|
|
|
- Renamed `runConstInput` to `runInputConst`
|
|
|
|
- Renamed `runEmbed` to `runEmbedded` (thanks to @googleson78)
|
|
|
|
- Renamed `runEmbedded` to `lowerEmbedded`
|
|
|
|
- Renamed `runErrorAsAnother` to `mapError`
|
|
|
|
- Renamed `runErrorInIO` to `lowerError`
|
|
|
|
- Renamed `runFoldMapOutput` to `runOutputMonoid`
|
|
|
|
- Renamed `runIO` to `embedToMonadIO`
|
|
|
|
- Renamed `runIgnoringOutput` to `ignoreOutput`
|
|
|
|
- Renamed `runIgnoringTrace` to `ignoreTrace`
|
|
|
|
- Renamed `runInputAsReader` to `inputToReader`
|
|
|
|
- Renamed `runListInput` to `runInputList`
|
|
|
|
- Renamed `runMonadicInput` to `runInputSem`
|
|
|
|
- Renamed `runOutputAsList` to `runOutputList`
|
|
|
|
- Renamed `runOutputAsTrace` to `outputToTrace`
|
|
|
|
- Renamed `runOutputAsWriter` to `outputToWriter`
|
|
|
|
- Renamed `runResourceBase` to `resourceToIO`
|
|
|
|
- Renamed `runResourceInIO` to `lowerResource`
|
|
|
|
- Renamed `runStateInIORef` to `runStateIORef`
|
|
|
|
- Renamed `runTraceAsList` to `runTraceList`
|
|
|
|
- Renamed `runTraceAsOutput` to `traceToOutput`
|
|
|
|
- Renamed `runTraceIO` to `traceToIO`
|
|
|
|
- Renamed `sendM` to `embed` (thanks to @googleson78)
|
2019-08-06 16:06:27 +03:00
|
|
|
- The `NonDet` effect is now higher-order (thanks to @KingoftheHomeless)
|
2019-07-24 17:45:42 +03:00
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
- Added `evalState` and `evalLazyState`
|
|
|
|
- Added `runNonDetMaybe` (thanks to @KingoftheHomeless)
|
2019-08-06 16:06:27 +03:00
|
|
|
- Added `nonDetToError` (thanks to @KingoftheHomeless)
|
2019-07-24 17:45:42 +03:00
|
|
|
- Haddock documentation for smart constructors generated via `makeSem` will no
|
|
|
|
longer have weird variable names (thanks to @TheMatten)
|
|
|
|
|
|
|
|
|
2019-07-08 17:19:25 +03:00
|
|
|
## 0.7.0.0 (2019-07-08)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
2019-07-08 17:22:29 +03:00
|
|
|
- Added a `Pass` constructor to `Writer` (thanks to @KingoftheHomeless)
|
|
|
|
- Fixed a bug in `runWriter` where the MTL semantics wouldn't be respected (thanks to @KingoftheHomeless)
|
|
|
|
- Removed the `Censor` constructor of `Writer` (thanks to @KingoftheHomeless)
|
2019-07-08 17:19:25 +03:00
|
|
|
- Renamed `Yo` to `Weaving`
|
2020-11-01 00:47:25 +03:00
|
|
|
- Changed the visible type applications for `asks`, `gets`, `runEmbedded`, `fromEitherM` and `runErrorAsAnother`
|
2019-07-08 17:19:25 +03:00
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
- Fixed haddock generation
|
|
|
|
|
2019-07-05 05:05:51 +03:00
|
|
|
## 0.6.0.0 (2019-07-04)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- Changed the type of `runBatchOutput` to be more useful (thanks to @Infinisil)
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
- **THE ERROR MESSAGES ARE SO MUCH BETTER** :party: :party: :party:
|
|
|
|
- Added `runEmbedded` to `Polysemy.IO`
|
|
|
|
- Added `runOutputAsList` to `Polysemy.Output` (thanks to @googleson78)
|
|
|
|
- Asymptotically improved the performance of `runTraceAsList` (thanks to
|
|
|
|
@googleson78)
|
|
|
|
|
2019-06-28 23:19:33 +03:00
|
|
|
## 0.5.1.0 (2019-06-28)
|
|
|
|
|
|
|
|
- New combinators for `Polysemy.Error`: `fromEither` and `fromEitherM`
|
|
|
|
|
2019-06-27 07:36:43 +03:00
|
|
|
## 0.5.0.1 (2019-06-27)
|
|
|
|
|
|
|
|
- Fixed a bug where `intercept` and `interceptH` wouldn't correctly handle
|
|
|
|
higher-order effects
|
|
|
|
|
2019-06-26 07:29:26 +03:00
|
|
|
## 0.5.0.0 (2019-06-26)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- Removed the internal `Effect` machinery
|
|
|
|
|
|
|
|
### New Effects and Interpretations
|
|
|
|
|
|
|
|
- New effect; `Async`, for describing asynchronous computations
|
|
|
|
- New interpretation for `Resource`: `runResourceBase`, which can lower
|
|
|
|
`Resource` effects without giving a lowering natural transformation
|
|
|
|
- New interpretation for `Trace`: `runTraceAsList`
|
|
|
|
- New combinator: `withLowerToIO`, which is capable of transforming
|
|
|
|
`IO`-invariant functions as effects.
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
- Lots of hard work on the package and CI infrastructure to make it green on
|
|
|
|
GHC 8.4.4 (thanks to @jkachmar)
|
|
|
|
- Changed the order of the types for `runMonadicInput` to be more helpful
|
|
|
|
(thanks to @tempname11)
|
|
|
|
- Improved the error machinery to be more selective about when it runs
|
|
|
|
- Factored out the TH into a common library for third-party consumers
|
|
|
|
|
2019-06-12 16:40:08 +03:00
|
|
|
## 0.4.0.0 (2019-06-12)
|
|
|
|
|
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- Renamed `runResource` to `runResourceInIO`
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
|
|
|
- Added `runResource`, which runs a `Resource` purely
|
|
|
|
- Added `onException`, `finally` and `bracketOnError` to `Resource`
|
|
|
|
- Added a new function, `runResource` which performs bracketing for pure code
|
|
|
|
|
2019-06-09 07:22:20 +03:00
|
|
|
## 0.3.0.1 (2019-06-09)
|
|
|
|
|
|
|
|
- Fixed a type error in the benchmark caused by deprecation of `Semantic`
|
|
|
|
|
2019-06-02 06:43:41 +03:00
|
|
|
## 0.3.0.0 (2019-06-01)
|
|
|
|
|
2019-06-12 16:40:08 +03:00
|
|
|
### Breaking Changes
|
|
|
|
|
2019-06-02 06:43:41 +03:00
|
|
|
- Removed all deprecated names
|
|
|
|
- Moved `Random` effect to `polysemy-zoo`
|
2019-06-12 16:40:08 +03:00
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
2019-06-02 06:43:41 +03:00
|
|
|
- `makeSem` can now be used to create term-level operators (thanks to
|
|
|
|
@TheMatten)
|
|
|
|
|
2019-05-31 07:10:52 +03:00
|
|
|
## 0.2.2.0 (2019-05-30)
|
|
|
|
|
|
|
|
- Added `getInspectorT` to the `Tactical` functions, which allows polysemy code
|
|
|
|
to be run in external callbacks
|
|
|
|
- A complete rewrite of `Polysemy.Internal.TH.Effect` (thanks to @TheMatten)
|
|
|
|
- Fixed a bug in the TH generation of effects where the splices could contain
|
|
|
|
usages of effects that were ambiguous
|
|
|
|
|
2019-05-28 22:52:53 +03:00
|
|
|
## 0.2.1.0 (2019-05-27)
|
|
|
|
|
|
|
|
- Fixed a bug in the `Alternative` instance for `Sem`, where it would choose the
|
|
|
|
*last* success instead of the first
|
|
|
|
- Added `MonadPlus` and `MonadFail` instances for `Sem`
|
|
|
|
|
2019-05-23 10:53:07 +03:00
|
|
|
## 0.2.0.0 (2019-05-23)
|
|
|
|
|
2019-06-12 16:40:08 +03:00
|
|
|
### Breaking Changes
|
|
|
|
|
|
|
|
- Lower precedence of `.@` and `.@@` to 8, from 9
|
|
|
|
|
|
|
|
### Other Changes
|
|
|
|
|
2019-05-23 10:53:07 +03:00
|
|
|
- Fixed a serious bug in `interpretH` and friends, where higher-order effects
|
|
|
|
would always be run with the current interpreter.
|
2019-05-24 00:06:24 +03:00
|
|
|
- Users need no longer require `inlineRecursiveCalls` --- the
|
|
|
|
`polysemy-plugin-0.2.0.0` will do it automatically when compiling with `-O`
|
|
|
|
- Deprecated `inlineRecursiveCalls`; slated for removal in the next version
|
2019-05-23 10:53:07 +03:00
|
|
|
|
2019-05-18 18:42:14 +03:00
|
|
|
## 0.1.2.1 (2019-05-18)
|
|
|
|
|
|
|
|
- Give explicit package bounds for dependencies
|
|
|
|
- Haddock improvements
|
|
|
|
- Remove `Typeable` machinery from `Polysemy.Internal.Union` (thanks to
|
|
|
|
@googleson78)
|
|
|
|
|
2019-04-26 19:18:44 +03:00
|
|
|
## 0.1.2.0 (2019-04-26)
|
|
|
|
|
|
|
|
- `runInputAsReader`, `runTraceAsOutput` and `runOutputAsWriter` have more
|
|
|
|
generalized types
|
|
|
|
- Added `runStateInIO`
|
|
|
|
- Added `runOutputAsTrace`
|
|
|
|
- Added `Members` (thanks to @TheMatten)
|
|
|
|
|
|
|
|
|
2019-04-14 22:07:37 +03:00
|
|
|
## 0.1.1.0 (2019-04-14)
|
|
|
|
|
2019-04-26 18:58:47 +03:00
|
|
|
- Added `runIO` interpretation (thanks to @adamConnerSax)
|
2019-04-14 22:07:37 +03:00
|
|
|
- Minor documentation fixes
|
|
|
|
|
|
|
|
|
|
|
|
## 0.1.0.0 (2019-04-11)
|
|
|
|
|
|
|
|
- Initial release
|