packages feed

polysemy-0.6.0.0: ChangeLog.md

# Changelog for polysemy

## 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)

## 0.5.1.0 (2019-06-28)

- New combinators for `Polysemy.Error`: `fromEither` and `fromEitherM`

## 0.5.0.1 (2019-06-27)

- Fixed a bug where `intercept` and `interceptH` wouldn't correctly handle
    higher-order effects

## 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

## 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

## 0.3.0.1 (2019-06-09)

- Fixed a type error in the benchmark caused by deprecation of `Semantic`

## 0.3.0.0 (2019-06-01)

### Breaking Changes

- Removed all deprecated names
- Moved `Random` effect to `polysemy-zoo`

### Other Changes

- `makeSem` can now be used to create term-level operators (thanks to
    @TheMatten)

## 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

## 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`

## 0.2.0.0 (2019-05-23)

### Breaking Changes

- Lower precedence of `.@` and `.@@` to 8, from 9

### Other Changes

- Fixed a serious bug in `interpretH` and friends, where higher-order effects
    would always be run with the current interpreter.
- 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

## 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)

## 0.1.2.0 (2019-04-26)

- `runInputAsReader`, `runTraceAsOutput` and `runOutputAsWriter` have more
    generalized types
- Added `runStateInIO`
- Added `runOutputAsTrace`
- Added `Members` (thanks to @TheMatten)


## 0.1.1.0 (2019-04-14)

- Added `runIO` interpretation (thanks to @adamConnerSax)
- Minor documentation fixes


## 0.1.0.0 (2019-04-11)

- Initial release

## Unreleased changes