packages feed

monad-choice-0.1.0.0: CHANGELOG.md

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