Changelog for polysemy
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)
- The
NonDet effect will no longer perform effects in untaken branches (thanks to @KingoftheHomeless)
Other Changes
- Added
evalState and evalLazyState
- Added
runNonDetMaybe (thanks to @KingoftheHomeless)
- Added
nonDetToMaybe (thanks to @KingoftheHomeless)
- Haddock documentation for smart constructors generated via
makeSem will no
longer have weird variable names (thanks to @TheMatten)
0.7.0.0 (2019-07-08)
Breaking Changes
- 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)
- Renamed
Yo to Weaving
- Changed the visible type applications for
asks, gets, and runErrorAsAnother
Other Changes
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)
Unreleased changes
- Changed the tyvars of
fromEitherM, runErrorAsAnother, runEmbedded,
asks and gets