# Changelog ## 0.1.0.0 (2020-02-29) Inital version ### Additions - `MonadChoice` - Created `MonadChoice` typeclass to represent that allow choices to be made by some arbitrary entity. - Added function `chooseM`. - Added instances for the `ChoiceT` both covariant and invariant. - Added instance for `MonadRandom` instances by using the `uniform` function. - Added various passthrough instances - `MaybeT` - `ExceptT` - `IdentityT` - `StateT` either lazy or strict - `ReaderT` - `WriterT` either constant space, lazy, or strict - `AccumT` - `ContT` - `RWST` either constant space, lazy, strict - `SelectT` - `ChoiceT` - Added two different versions of `ChoiceT`, one a covariant functor, the other an invariant functor on the category of monads. - Shared additions: - Function `runChoiceT` - Instances for `Functor`, `Applicative`, `Monad`, `MonadTrans`, and `MonadChoice` - Various passthrough instances - `MonadReader` - `MonadState` - `MonadWriter` - `MonadRWS` - `MonadIO` - `Covariant.ChoiceT` - Added functions `mapChoiceT` and `runBacktrackableChoiceT`. - `Invariant.ChoiceT` - Exposed constructor `ChoiceT`. - Added function `invmapChoiceT`. - Added various passthrough instances. - `Contravariant` - `Invariant` - `Alternative` - `MonadPlus` - `MonadError` - `Choice` - Added two different versions of `Choice` which of type aliases for each `ChoiceT` over the `Identity` monad. - Added function `runChoice` for each version. - For `Covariant.Choice` added functions `runChoiceM` and `runBacktrackableChoiceT`.