# Binder

A simple library to allow easy piping of functions that return `{ :ok, ... }` or
`{ :error, ... }`, as well as functions that may return `nil`.

## Usage

### Either

Imagine needing to chain multiple functions that may return `{ :ok, ... }`
tuples (and potentially some that may not). For instance, given functions
`might_succed_*` that take in a value and return either `{ :ok, ... }` or `{
:error, ... }` tuples, and a function `do_a_thing` that simply takes a value and
transforms it, the functions can be piped together like this

|> might_succeed_1
|> Either.bind(&might_succeed_2/1)
|> Either.bind(&might_succeed_3/1)

### Maybe

For functions that can return `nil`, `Maybe` allows the piping together of
functions and handles the `nil` so that the functions don't have to:

|> maybe_nil_1
|> Maybe.bind(&maybe_nil_2/1)
|> Maybe.bind(&do_a_thing/1)

## Installation

If [available in Hex](, the package can be installed
by adding `binder` to your list of dependencies in `mix.exs`:

def deps do
  [{:binder, "~> 0.1.0"}]

Documentation can be generated with [ExDoc](
and published on [HexDocs]( Once published, the docs can
be found at [](