- New combinators for
Polysemy.Error
:fromEither
andfromEitherM
- Fixed a bug where
intercept
andinterceptH
wouldn't correctly handle higher-order effects
- Removed the internal
Effect
machinery
- New effect;
Async
, for describing asynchronous computations - New interpretation for
Resource
:runResourceBase
, which can lowerResource
effects without giving a lowering natural transformation - New interpretation for
Trace
:runTraceAsList
- New combinator:
withLowerToIO
, which is capable of transformingIO
-invariant functions as effects.
- 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
- Renamed
runResource
torunResourceInIO
- Added
runResource
, which runs aResource
purely - Added
onException
,finally
andbracketOnError
toResource
- Added a new function,
runResource
which performs bracketing for pure code
- Fixed a type error in the benchmark caused by deprecation of
Semantic
- Removed all deprecated names
- Moved
Random
effect topolysemy-zoo
makeSem
can now be used to create term-level operators (thanks to @TheMatten)
- Added
getInspectorT
to theTactical
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
- Fixed a bug in the
Alternative
instance forSem
, where it would choose the last success instead of the first - Added
MonadPlus
andMonadFail
instances forSem
- Lower precedence of
.@
and.@@
to 8, from 9
- 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
--- thepolysemy-plugin-0.2.0.0
will do it automatically when compiling with-O
- Deprecated
inlineRecursiveCalls
; slated for removal in the next version
- Give explicit package bounds for dependencies
- Haddock improvements
- Remove
Typeable
machinery fromPolysemy.Internal.Union
(thanks to @googleson78)
runInputAsReader
,runTraceAsOutput
andrunOutputAsWriter
have more generalized types- Added
runStateInIO
- Added
runOutputAsTrace
- Added
Members
(thanks to @TheMatten)
- Added
runIO
interpretation (thanks to @adamConnerSax) - Minor documentation fixes
- Initial release