# API

## Values

```eval_rst
.. autofunction:: deal.pre
.. autofunction:: deal.post
.. autofunction:: deal.ensure
.. autofunction:: deal.inv
.. autofunction:: deal.dispatch
```

## Side-effects and exceptions

```eval_rst
.. autofunction:: deal.has
.. autofunction:: deal.raises
.. autofunction:: deal.reason
```

## Helpers

```eval_rst
.. autofunction:: deal.chain
.. autofunction:: deal.pure
.. autofunction:: deal.safe
.. autofunction:: deal.implies
```

## Testing

Keep in mind that sphinx [skipped some of the docstrings](https://github.com/sphinx-doc/sphinx/issues/7787) for `deal.cases`.

```eval_rst
.. autoclass:: deal.cases
    :members:
    :special-members:

.. autoclass:: deal.TestCase
    :members:
```

## Other

```eval_rst
.. autofunction:: deal.module_load
.. autofunction:: deal.disable
.. autofunction:: deal.enable
.. autofunction:: deal.reset
```
