# ark v0.13.2 - Table of Contents

> Ark is a collection of small utilities useful for prototyping,
testing, and working with Elixir common patterns.

## Pages

- [Ark](readme.md)

## Modules

- [Ark.BinarySearch](Ark.BinarySearch.md): Finds an integer by repeatedly probing candidates with a comparison callback.
- [Ark.Error](Ark.Error.md): Turns error reasons into human-readable text.
- [Ark.Interface](Ark.Interface.md): Defines protocols whose implementation lives as plain functions on the
implementing struct's own module.
- [Ark.Ok](Ark.Ok.md): Helpers for working with `:ok` and `:error` result tuples.
- [Ark.Paginator](Ark.Paginator.md): Builds a `Stream` from a paginated source.
- [Ark.Retry](Ark.Retry.md): Generic retry utilities.

- [Ark.StructAccess](Ark.StructAccess.md): Implements the `Access` behaviour for a struct.
- [Ark.Timeout](Ark.Timeout.md): Helpers for working with millisecond timeout values.

- Exceptions
  - [Ark.Ok.UnwrapError](Ark.Ok.UnwrapError.md): Raised by `Ark.Ok.uok!/1` and `Ark.Ok.xok!/1` when a value cannot be
unwrapped into an `:ok` result.
  - [Ark.Paginator.CallbackError](Ark.Paginator.CallbackError.md): Raised when a paginator callback returns `{:error, reason}` after the first
page, where `reason` is not itself an exception.

