-record(decider, { initial :: any(), decide :: fun((any(), any()) -> {ok, list(any())} | {error, any()}), evolve :: fun((any(), any()) -> any()) }).