# hoare v0.2.0 - Table of Contents

> Declared state transitions as pre/post contracts: states, guards, undoable effects, one locked commit.

## Pages

- [Hoare](readme.md)
- [Changelog](changelog.md)

## Modules

- [Hoare.Graph](Hoare.Graph.md): The graph a list of transition modules declares: states as vertices, each
transition an edge from every state it leaves to the one it reaches.
- [Hoare.Result](Hoare.Result.md): Combinators over `{:ok, value} | {:error, reason}`.
- [Hoare.State](Hoare.State.md): A named record state: the status that tags it and the properties that refine
it.
- [Hoare.Store](Hoare.Store.md): What a transition's commit needs from the datastore.
- [Hoare.Store.Memory](Hoare.Store.Memory.md): A `Hoare.Store` that keeps records in the calling process, for testing a
transition without a datastore.
- [Hoare.Transition](Hoare.Transition.md): A declared transition: the states it leaves, the state it reaches, the
guards that must hold and the effects it performs, each list composed as one
Kleisli arrow. `{from, guards} body {to}` is the Hoare triple; `run/4`
discharges it.

