Modules
Combinators over {:ok, value} | {:error, reason}.
A named record state: the status that tags it and the properties that refine it.
What a transition's commit needs from the datastore.
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.