# Changelog
## 0.2.0.0 (2020-03-27)
Fixed broken `MonadChoice` instance for `MonadRandom` types and fixed, expanded, and fine tuned dependency version requirements.
### Additions
- `UniformRandom`
- Created marker `newtype` `UniformRandom` that provides a `MonadChoice` instance for members of the `MonadRandom` typeclass.
- Added functions `lift` and `colift` to wrap and unwrap `UniformRandom`, respectively.
- Added instance for `MonadChoice` using `uniform` from the `MoandRandom` package when the wrapped monad is a member of the `MonadRandom` class.
- Added various passthrough instances
- `Functor`
- `Applicative`
- `Monad`
- `MonadRandom`
- `MonadFix`
- `MonadFail`
- `Alternative`
- `MonadPlus`
- `MonadIO`
- `Semigroup`
- `Monoid`
- `MonadError`
- `MonadReader`
- `MonadState`
- `Foldable`
- `Traversable`
- `Eq1`
- `Ord1`
- `MonadZip`
- `MonadCont`
- `Eq`
- `Ord`
- `MonadRWS`
- `MonadWriter`
- `MonadSplit`
- `PrimMonad`
- `MonadInterleave`
### Removals
- `MonadChoice`
- Removed previous instance for members of the `MonadRandom` type class since it overlapped with all other `MonadChoice` instances.
- Removed passthrough instances for constant space `WriterT` and `RWST` if `transformers` version is less than 0.5.6
## 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`.