diff --git a/README.md b/README.md
index 4c17d84..0df5ce9 100644
--- a/README.md
+++ b/README.md
@@ -26,13 +26,7 @@
Huge credit to @JSMonk. This library is based on [`JSMonk/sweet-monads`](https://github.com/JSMonk/sweet-monads)
-Docs available in his repository
-
-- [Either](https://github.com/JSMonk/sweet-monads/tree/master/either)
-- [Maybe](https://github.com/JSMonk/sweet-monads/tree/master/maybe)
-- [Reference](./docs/api/modules.md)
-
-## 📦 Installation
+## Installation
- **Using `npm`**
```shell
@@ -47,7 +41,123 @@ Docs available in his repository
pnpm add monads-io
```
-## ⚙️ Usage
+## Usage
+
+### [Either](./docs/api/modules/either.md)
+
+> The Either type represents values with two possibilities: a value of type Either a b is either Left a or Right b.
+> ([source](https://hackage.haskell.org/package/category-extras-0.52.0/docs/Control-Monad-Either.html))
+
+1. Makes error path of function strongly typed
+2. Separates errors from exceptions
+3. Minimal memory overhead (see [benchmarks](./benchmarks/))
+
+
+ Example (preparing data to render User page)
+
+```typescript
+import {
+ Either,
+ fromPromise,
+ fromTryAsync,
+ left,
+ mergeInOne,
+ right
+} from "monads-io/either";
+
+class NetworkError extends Error {}
+class HttpError extends Error {}
+class JsonParsingError extends Error {}
+class NotFoundError extends Error {}
+
+type FetchError = NetworkError | HttpError | JsonParsingError;
+
+type ID = string;
+type User = { id: ID; username: string; name: string /* ... */ };
+type Post = { id: ID; userId: User["id"]; body: string /* ... */ };
+
+async function getJson(url: string): Promise> {
+ const response = await fromPromise(
+ fetch(`https://jsonplaceholder.typicode.com/${url}`),
+ (cause) => new NetworkError("Unable to connect", { cause })
+ );
+
+ const okResponse = response.chain((response) => {
+ if (response.ok) return right(response);
+
+ return left(
+ new HttpError(
+ `Response status is ${response.status} ${response.statusText}`,
+ { cause: response }
+ )
+ );
+ });
+
+ const json = await okResponse.asyncChain((response) => {
+ return fromTryAsync(
+ async () => (await response.json()) as T,
+ (cause) => new JsonParsingError("Unable to parse JSON", { cause })
+ );
+ });
+
+ return json;
+}
+
+async function getUserByUsername(username: string) {
+ const users = await getJson(`/users?username=${username}`);
+
+ return users.chain((users) => {
+ const user = users[0];
+
+ if (!user) {
+ return left(new NotFoundError(`User not found`, { cause: { username } }));
+ }
+
+ return right(user);
+ });
+}
+
+const getPosts = (userId: string) =>
+ getJson(`/posts?ownerId=${userId}`);
+
+class PageLoadError extends Error {
+ /* ... */
+
+ constructor(public returnStatus: number, message: string, cause?: unknown) {
+ super(message, { cause });
+ }
+}
+
+async function getUserPageData(username: string) {
+ const user = await getUserByUsername(username);
+ const posts = await user.asyncChain((user) => getPosts(user.id));
+
+ return mergeInOne([user, posts])
+ .map(([user, posts]) => ({ user, posts }))
+ .mapLeft((error) => {
+ if (error instanceof NotFoundError) {
+ return new PageLoadError(404, "User not found", error);
+ }
+
+ // error: FetchError
+ console.log("Error fetching data for User Page", error);
+ return new PageLoadError(500, "Internal server error", error);
+ });
+}
+```
+
+
+
+### [Maybe](./docs/api/modules/maybe.md)
+
+> The Maybe monad represents computations which might "go wrong" by not returning a value.
+> ([source](https://en.wikibooks.org/wiki/Haskell/Understanding_monads/Maybe))
+
+1. Allows to separate empty/present state from undefined
+2. Minimal memory overhead (see [benchmarks](./benchmarks/))
+
+
+ Example (searching mention target)
```typescript
// Real world example
@@ -55,44 +165,66 @@ Docs available in his repository
import { Maybe } from "monads-io";
export async function getTargets(
- api: TelegramAPI,
- tokens: formattedText,
- { mentionLimit = 1, message = undefined as message | undefined } = {}
+api: TelegramAPI,
+tokens: formattedText,
+{ mentionLimit = 1, message = undefined as message | undefined } = {}
): Promise
+
+### [Identity](./docs/api/modules/identity.md)
+
+> The Identity monad is a monad that does not embody any computational strategy. It simply applies the bound function to its input without any modification.
+> ([source](https://blog.ploeh.dk/2022/05/16/the-identity-monad/))
+
+Example
+
+```typescript
+// Before
+app.use(express.static(path.resolve(getDirname(import.meta.url), "../public")));
+
+// After
+Identity.from(import.meta.url)
+ .map(getDirname)
+ .map((dir) => path.resolve(dir, "../public"))
+ .map(express.static)
+ .map(app.use);
```
diff --git a/docs/api/README.md b/docs/api/README.md
index 5cd5949..b99a278 100644
--- a/docs/api/README.md
+++ b/docs/api/README.md
@@ -1,4 +1,4 @@
-Package / [Exports](modules.md)
+Package / [Modules](modules.md)
# Monads IO
@@ -28,13 +28,7 @@ Package / [Exports](modules.md)
Huge credit to @JSMonk. This library is based on [`JSMonk/sweet-monads`](https://github.com/JSMonk/sweet-monads)
-Docs available in his repository
-
-- [Either](https://github.com/JSMonk/sweet-monads/tree/master/either)
-- [Maybe](https://github.com/JSMonk/sweet-monads/tree/master/maybe)
-- [Reference](./docs/api/modules.md)
-
-## 📦 Installation
+## Installation
- **Using `npm`**
```shell
@@ -49,7 +43,134 @@ Docs available in his repository
pnpm add monads-io
```
-## ⚙️ Usage
+## Usage
+
+### [Either](./docs/api/)
+
+> The Either type represents values with two possibilities: a value of type Either a b is either Left a or Right b.
+> ([source](https://hackage.haskell.org/package/category-extras-0.52.0/docs/Control-Monad-Either.html))
+
+1. Makes error path of function strongly typed
+2. Separates errors from exceptions
+3. Minimal memory overhead (see [benchmarks](./benchmarks/))
+
+
+ Example (preparing data to render User page)
+
+```typescript
+import {
+ Either,
+ fromPromise,
+ fromTryAsync,
+ left,
+ mergeInOne,
+ right
+} from "monads-io/either";
+
+class NetworkError extends Error {
+ /* */
+}
+class HttpError extends Error {
+ /* */
+}
+class JsonParsingError extends Error {
+ /* */
+}
+
+class NotFoundError extends Error {
+ /* ... */
+}
+
+type FetchError = NetworkError | HttpError | JsonParsingError;
+
+type ID = string;
+type User = { id: ID; username: string; name: string /* ... */ };
+type Post = { id: ID; userId: User["id"]; body: string /* ... */ };
+
+async function getJson(url: string): Promise> {
+ const response = await fromPromise(
+ fetch(`https://jsonplaceholder.typicode.com/${url}`),
+ (cause) => new NetworkError("Unable to connect", { cause })
+ );
+
+ const okResponse = response.chain((response) => {
+ if (response.ok) return right(response);
+
+ return left(
+ new HttpError(
+ `Response status is ${response.status} ${response.statusText}`,
+ { cause: response }
+ )
+ );
+ });
+
+ const json = await okResponse.asyncChain((response) => {
+ return fromTryAsync(
+ async () => {
+ return (await response.json()) as T;
+ },
+ (cause) => new JsonParsingError("Unable to parse JSON", { cause })
+ );
+ });
+
+ return json;
+}
+
+async function getUserByUsername(username: string) {
+ const users = await getJson(`/users?username=${username}`);
+
+ return users.chain((users) => {
+ const user = users[0];
+
+ if (!user) {
+ return left(new NotFoundError(`User not found`, { cause: { username } }));
+ }
+
+ return right(user);
+ });
+}
+
+const getPosts = (userId: string) =>
+ getJson(`/posts?ownerId=${userId}`);
+
+class PageLoadError extends Error {
+ /* ... */
+
+ constructor(public returnStatus: number, message: string, cause?: unknown) {
+ super(message, { cause });
+ }
+}
+
+async function getUserPageData(username: string) {
+ const user = await getUserByUsername(username);
+ const posts = await user.asyncChain((user) => getPosts(user.id));
+
+ return mergeInOne([user, posts])
+ .map(([user, posts]) => ({ user, posts }))
+ .mapLeft((error) => {
+ if (error instanceof NotFoundError) {
+ return new PageLoadError(404, "User not found", error);
+ }
+
+ // error: FetchError
+ console.log("Error fetching data for User Page", error);
+ return new PageLoadError(500, "Internal server error", error);
+ });
+}
+```
+
+
+
+### Maybe
+
+> The Maybe monad represents computations which might "go wrong" by not returning a value.
+> ([source](https://en.wikibooks.org/wiki/Haskell/Understanding_monads/Maybe))
+
+1. Allows to separate empty/present state from undefined
+2. Minimal memory overhead (see [benchmarks](./benchmarks/))
+
+
+ Example (searching mention target)
```typescript
// Real world example
@@ -57,44 +178,66 @@ Docs available in his repository
import { Maybe } from "monads-io";
export async function getTargets(
- api: TelegramAPI,
- tokens: formattedText,
- { mentionLimit = 1, message = undefined as message | undefined } = {}
+api: TelegramAPI,
+tokens: formattedText,
+{ mentionLimit = 1, message = undefined as message | undefined } = {}
): Promise
+
+### Identity
+
+> The Identity monad is a monad that does not embody any computational strategy. It simply applies the bound function to its input without any modification.
+> ([source](https://blog.ploeh.dk/2022/05/16/the-identity-monad/))
+
+Example
+
+```typescript
+// Before
+app.use(express.static(path.resolve(getDirname(import.meta.url), "../public")));
+
+// After
+Identity.from(import.meta.url)
+ .map(getDirname)
+ .map((dir) => path.resolve(dir, "../public"))
+ .map(express.static)
+ .map(app.use);
```
diff --git a/docs/api/classes/either._internal_.EitherConstructor.md b/docs/api/classes/either._internal_.EitherConstructor.md
new file mode 100644
index 0000000..cd2abed
--- /dev/null
+++ b/docs/api/classes/either._internal_.EitherConstructor.md
@@ -0,0 +1,893 @@
+[Package](../README.md) / [Modules](../modules.md) / [either](../modules/either.md) / [\](../modules/either._internal_.md) / EitherConstructor
+
+# Class: EitherConstructor\
+
+[either](../modules/either.md).[\](../modules/either._internal_.md).EitherConstructor
+
+## Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+## Hierarchy
+
+- **`EitherConstructor`**
+
+ ↳ [`Right`](either._internal_.Right.md)
+
+ ↳ [`Left`](either._internal_.Left.md)
+
+## Implements
+
+- [`AsyncMonad`](../interfaces/index.AsyncMonad.md)\<`R`\>
+- [`Alternative`](../interfaces/index.Alternative.md)\<`R`\>
+- [`Container`](../interfaces/index.Container.md)\<`R`\>
+- [`Pipe`](../interfaces/types.Pipe.md)
+
+## Table of contents
+
+### Constructors
+
+- [constructor](either._internal_.EitherConstructor.md#constructor)
+
+### Methods
+
+- [any](either._internal_.EitherConstructor.md#any)
+- [apply](either._internal_.EitherConstructor.md#apply)
+- [asyncApply](either._internal_.EitherConstructor.md#asyncapply)
+- [asyncChain](either._internal_.EitherConstructor.md#asyncchain)
+- [asyncMap](either._internal_.EitherConstructor.md#asyncmap)
+- [await](either._internal_.EitherConstructor.md#await)
+- [biMap](either._internal_.EitherConstructor.md#bimap)
+- [chain](either._internal_.EitherConstructor.md#chain)
+- [default](either._internal_.EitherConstructor.md#default)
+- [fold](either._internal_.EitherConstructor.md#fold)
+- [isLeft](either._internal_.EitherConstructor.md#isleft)
+- [isRight](either._internal_.EitherConstructor.md#isright)
+- [join](either._internal_.EitherConstructor.md#join)
+- [map](either._internal_.EitherConstructor.md#map)
+- [mapLeft](either._internal_.EitherConstructor.md#mapleft)
+- [mapRight](either._internal_.EitherConstructor.md#mapright)
+- [or](either._internal_.EitherConstructor.md#or)
+- [orAsync](either._internal_.EitherConstructor.md#orasync)
+- [orLazy](either._internal_.EitherConstructor.md#orlazy)
+- [pipe](either._internal_.EitherConstructor.md#pipe)
+- [promise](either._internal_.EitherConstructor.md#promise)
+- [swap](either._internal_.EitherConstructor.md#swap)
+- [tap](either._internal_.EitherConstructor.md#tap)
+- [throw](either._internal_.EitherConstructor.md#throw)
+- [unwrap](either._internal_.EitherConstructor.md#unwrap)
+- [unwrapOr](either._internal_.EitherConstructor.md#unwrapor)
+- [unwrapOrElse](either._internal_.EitherConstructor.md#unwraporelse)
+- [value](either._internal_.EitherConstructor.md#value)
+- [zip](either._internal_.EitherConstructor.md#zip)
+
+## Constructors
+
+### constructor
+
+• **new EitherConstructor**\<`L`, `R`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+## Methods
+
+### any
+
+▸ **any**\<`T`\>(`this`): `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`T`, `T`\> |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+dist/either.d.ts:67
+
+___
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[apply](../interfaces/index.AsyncMonad.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:20
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[apply](../interfaces/index.AsyncMonad.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:21
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Defined in
+
+dist/either.d.ts:22
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Defined in
+
+dist/either.d.ts:23
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`A`, `B`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[asyncChain](../interfaces/index.AsyncMonad.md#asyncchain)
+
+#### Defined in
+
+dist/either.d.ts:27
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Defined in
+
+dist/either.d.ts:28
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[await](../interfaces/index.AsyncMonad.md#await)
+
+#### Defined in
+
+dist/either.d.ts:29
+
+___
+
+### biMap
+
+▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Defined in
+
+dist/either.d.ts:26
+
+___
+
+### chain
+
+▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`Either`](../modules/either.md#either)\<`A`, `B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[chain](../interfaces/index.AsyncMonad.md#chain)
+
+#### Defined in
+
+dist/either.d.ts:25
+
+___
+
+### default
+
+▸ **default**(`value`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `R` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Implementation of
+
+[Alternative](../interfaces/index.Alternative.md).[default](../interfaces/index.Alternative.md#default)
+
+#### Defined in
+
+dist/either.d.ts:38
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+`A` \| `B`
+
+**`Throws`**
+
+- InvalidStateError if Either state is neither Left neither Right, this probably should never happen
+
+#### Defined in
+
+dist/either.d.ts:37
+
+___
+
+### isLeft
+
+▸ **isLeft**(): this is Left\
+
+#### Returns
+
+this is Left\
+
+#### Defined in
+
+dist/either.d.ts:12
+
+___
+
+### isRight
+
+▸ **isRight**(): this is Right\
+
+#### Returns
+
+this is Right\
+
+#### Defined in
+
+dist/either.d.ts:13
+
+___
+
+### join
+
+▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `L2` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L1`, [`Either`](../modules/either.md#either)\<`L2`, `R`\>\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[join](../interfaces/index.AsyncMonad.md#join)
+
+#### Defined in
+
+dist/either.d.ts:16
+
+___
+
+### map
+
+▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[map](../interfaces/index.AsyncMonad.md#map)
+
+#### Defined in
+
+dist/either.d.ts:18
+
+___
+
+### mapLeft
+
+▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`L`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:17
+
+___
+
+### mapRight
+
+▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Defined in
+
+dist/either.d.ts:19
+
+___
+
+### or
+
+▸ **or**(`x`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Implementation of
+
+[Alternative](../interfaces/index.Alternative.md).[or](../interfaces/index.Alternative.md#or)
+
+#### Defined in
+
+dist/either.d.ts:39
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Defined in
+
+dist/either.d.ts:41
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:40
+
+___
+
+### pipe
+
+▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`T`
+
+#### Implementation of
+
+[Pipe](../interfaces/types.Pipe.md).[pipe](../interfaces/types.Pipe.md#pipe)
+
+#### Defined in
+
+dist/either.d.ts:11
+
+___
+
+### promise
+
+▸ **promise**(): `Promise`\<`R`\>
+
+#### Returns
+
+`Promise`\<`R`\>
+
+#### Defined in
+
+dist/either.d.ts:52
+
+___
+
+### swap
+
+▸ **swap**(): [`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Defined in
+
+dist/either.d.ts:24
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`R`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:10
+
+___
+
+### throw
+
+▸ **throw**(): `R`
+
+#### Returns
+
+`R`
+
+- Right value if current state is Right,
+
+**`Throws`**
+
+- L if current state is Left
+
+#### Defined in
+
+dist/either.d.ts:58
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `R`
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
+
+#### Returns
+
+`R`
+
+- Right value of Either, if right
+
+**`Deprecated`**
+
+- **If Left value is Error use [throw](either._internal_.Right.md#throw) instead**
+
+**`Throws`**
+
+- UnwrapCustomError is Left with provided message
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrap](../interfaces/index.Container.md#unwrap)
+
+#### Defined in
+
+dist/either.d.ts:51
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrapOr](../interfaces/index.Container.md#unwrapor)
+
+#### Defined in
+
+dist/either.d.ts:15
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `fallback` | (`value`: `L`) => `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Defined in
+
+dist/either.d.ts:14
+
+___
+
+### value
+
+▸ **value**(): `L` \| `R`
+
+Return value of Either independent if it is Right or Left
+
+#### Returns
+
+`L` \| `R`
+
+**`Deprecated`**
+
+- probably should not be used, please refactor code or use [fold](either._internal_.Right.md#fold)
+
+**`See`**
+
+[fold](either._internal_.Right.md#fold)
+
+#### Defined in
+
+dist/either.d.ts:66
+
+___
+
+### zip
+
+▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](../modules/either.md#either)\<`A`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Defined in
+
+dist/either.d.ts:42
diff --git a/docs/api/classes/either._internal_.Left.md b/docs/api/classes/either._internal_.Left.md
new file mode 100644
index 0000000..c03bdc9
--- /dev/null
+++ b/docs/api/classes/either._internal_.Left.md
@@ -0,0 +1,1131 @@
+[Package](../README.md) / [Modules](../modules.md) / [either](../modules/either.md) / [\](../modules/either._internal_.md) / Left
+
+# Class: Left\
+
+[either](../modules/either.md).[\](../modules/either._internal_.md).Left
+
+## Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+## Hierarchy
+
+- [`EitherConstructor`](either._internal_.EitherConstructor.md)\<`L`, `R`\>
+
+ ↳ **`Left`**
+
+## Implements
+
+- [`SerializedLeft`](../modules/either._internal_.md#serializedleft)\<`L`\>
+
+## Table of contents
+
+### Constructors
+
+- [constructor](either._internal_.Left.md#constructor)
+
+### Properties
+
+- [left](either._internal_.Left.md#left)
+
+### Accessors
+
+- [[toStringTag]](either._internal_.Left.md#[tostringtag])
+- [name](either._internal_.Left.md#name)
+- [type](either._internal_.Left.md#type)
+
+### Methods
+
+- [any](either._internal_.Left.md#any)
+- [apply](either._internal_.Left.md#apply)
+- [asyncApply](either._internal_.Left.md#asyncapply)
+- [asyncChain](either._internal_.Left.md#asyncchain)
+- [asyncMap](either._internal_.Left.md#asyncmap)
+- [await](either._internal_.Left.md#await)
+- [biMap](either._internal_.Left.md#bimap)
+- [chain](either._internal_.Left.md#chain)
+- [default](either._internal_.Left.md#default)
+- [fold](either._internal_.Left.md#fold)
+- [getLeft](either._internal_.Left.md#getleft)
+- [getRight](either._internal_.Left.md#getright)
+- [isLeft](either._internal_.Left.md#isleft)
+- [isRight](either._internal_.Left.md#isright)
+- [join](either._internal_.Left.md#join)
+- [map](either._internal_.Left.md#map)
+- [mapLeft](either._internal_.Left.md#mapleft)
+- [mapRight](either._internal_.Left.md#mapright)
+- [or](either._internal_.Left.md#or)
+- [orAsync](either._internal_.Left.md#orasync)
+- [orLazy](either._internal_.Left.md#orlazy)
+- [pipe](either._internal_.Left.md#pipe)
+- [promise](either._internal_.Left.md#promise)
+- [swap](either._internal_.Left.md#swap)
+- [tap](either._internal_.Left.md#tap)
+- [throw](either._internal_.Left.md#throw)
+- [toJSON](either._internal_.Left.md#tojson)
+- [unwrap](either._internal_.Left.md#unwrap)
+- [unwrapOr](either._internal_.Left.md#unwrapor)
+- [unwrapOrElse](either._internal_.Left.md#unwraporelse)
+- [value](either._internal_.Left.md#value)
+- [zip](either._internal_.Left.md#zip)
+- [create](either._internal_.Left.md#create)
+
+## Constructors
+
+### constructor
+
+• `Private` **new Left**\<`L`, `R`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Overrides
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[constructor](either._internal_.EitherConstructor.md#constructor)
+
+#### Defined in
+
+dist/either.d.ts:89
+
+## Properties
+
+### left
+
+• `Readonly` **left**: `L`
+
+**`Deprecated`**
+
+Should not be used directly, public only for serialization & type check use [getLeft](either._internal_.Left.md#getleft)
+
+**`See`**
+
+[getLeft](either._internal_.Left.md#getleft)
+
+**`Memberof`**
+
+Left
+
+#### Implementation of
+
+SerializedLeft.left
+
+#### Defined in
+
+dist/either.d.ts:83
+
+## Accessors
+
+### [toStringTag]
+
+• `get` **[toStringTag]**(): [`Left`](../enums/either.EitherType.md#left)
+
+#### Returns
+
+[`Left`](../enums/either.EitherType.md#left)
+
+#### Defined in
+
+dist/either.d.ts:84
+
+___
+
+### name
+
+• `get` **name**(): ``"Either"``
+
+#### Returns
+
+``"Either"``
+
+#### Implementation of
+
+SerializedLeft.name
+
+#### Defined in
+
+dist/either.d.ts:85
+
+___
+
+### type
+
+• `get` **type**(): [`Left`](../enums/either.EitherType.md#left)
+
+#### Returns
+
+[`Left`](../enums/either.EitherType.md#left)
+
+#### Implementation of
+
+SerializedLeft.type
+
+#### Defined in
+
+dist/either.d.ts:88
+
+## Methods
+
+### any
+
+▸ **any**\<`T`\>(`this`): `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`T`, `T`\> |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[any](either._internal_.EitherConstructor.md#any)
+
+#### Defined in
+
+dist/either.d.ts:67
+
+___
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[apply](either._internal_.EitherConstructor.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:20
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[apply](either._internal_.EitherConstructor.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:21
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncApply](either._internal_.EitherConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/either.d.ts:22
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncApply](either._internal_.EitherConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/either.d.ts:23
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`A`, `B`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncChain](either._internal_.EitherConstructor.md#asyncchain)
+
+#### Defined in
+
+dist/either.d.ts:27
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncMap](either._internal_.EitherConstructor.md#asyncmap)
+
+#### Defined in
+
+dist/either.d.ts:28
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[await](either._internal_.EitherConstructor.md#await)
+
+#### Defined in
+
+dist/either.d.ts:29
+
+___
+
+### biMap
+
+▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[biMap](either._internal_.EitherConstructor.md#bimap)
+
+#### Defined in
+
+dist/either.d.ts:26
+
+___
+
+### chain
+
+▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`Either`](../modules/either.md#either)\<`A`, `B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[chain](either._internal_.EitherConstructor.md#chain)
+
+#### Defined in
+
+dist/either.d.ts:25
+
+___
+
+### default
+
+▸ **default**(`value`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `R` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[default](either._internal_.EitherConstructor.md#default)
+
+#### Defined in
+
+dist/either.d.ts:38
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+`A` \| `B`
+
+**`Throws`**
+
+- InvalidStateError if Either state is neither Left neither Right, this probably should never happen
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[fold](either._internal_.EitherConstructor.md#fold)
+
+#### Defined in
+
+dist/either.d.ts:37
+
+___
+
+### getLeft
+
+▸ **getLeft**(): `L`
+
+#### Returns
+
+`L`
+
+#### Defined in
+
+dist/either.d.ts:87
+
+___
+
+### getRight
+
+▸ **getRight**(): `undefined`
+
+#### Returns
+
+`undefined`
+
+#### Defined in
+
+dist/either.d.ts:86
+
+___
+
+### isLeft
+
+▸ **isLeft**(): this is Left\
+
+#### Returns
+
+this is Left\
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[isLeft](either._internal_.EitherConstructor.md#isleft)
+
+#### Defined in
+
+dist/either.d.ts:12
+
+___
+
+### isRight
+
+▸ **isRight**(): this is Right\
+
+#### Returns
+
+this is Right\
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[isRight](either._internal_.EitherConstructor.md#isright)
+
+#### Defined in
+
+dist/either.d.ts:13
+
+___
+
+### join
+
+▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `L2` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L1`, [`Either`](../modules/either.md#either)\<`L2`, `R`\>\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[join](either._internal_.EitherConstructor.md#join)
+
+#### Defined in
+
+dist/either.d.ts:16
+
+___
+
+### map
+
+▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[map](either._internal_.EitherConstructor.md#map)
+
+#### Defined in
+
+dist/either.d.ts:18
+
+___
+
+### mapLeft
+
+▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`L`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[mapLeft](either._internal_.EitherConstructor.md#mapleft)
+
+#### Defined in
+
+dist/either.d.ts:17
+
+___
+
+### mapRight
+
+▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[mapRight](either._internal_.EitherConstructor.md#mapright)
+
+#### Defined in
+
+dist/either.d.ts:19
+
+___
+
+### or
+
+▸ **or**(`x`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[or](either._internal_.EitherConstructor.md#or)
+
+#### Defined in
+
+dist/either.d.ts:39
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[orAsync](either._internal_.EitherConstructor.md#orasync)
+
+#### Defined in
+
+dist/either.d.ts:41
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[orLazy](either._internal_.EitherConstructor.md#orlazy)
+
+#### Defined in
+
+dist/either.d.ts:40
+
+___
+
+### pipe
+
+▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[pipe](either._internal_.EitherConstructor.md#pipe)
+
+#### Defined in
+
+dist/either.d.ts:11
+
+___
+
+### promise
+
+▸ **promise**(): `Promise`\<`R`\>
+
+#### Returns
+
+`Promise`\<`R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[promise](either._internal_.EitherConstructor.md#promise)
+
+#### Defined in
+
+dist/either.d.ts:52
+
+___
+
+### swap
+
+▸ **swap**(): [`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[swap](either._internal_.EitherConstructor.md#swap)
+
+#### Defined in
+
+dist/either.d.ts:24
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`R`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[tap](either._internal_.EitherConstructor.md#tap)
+
+#### Defined in
+
+dist/either.d.ts:10
+
+___
+
+### throw
+
+▸ **throw**(): `R`
+
+#### Returns
+
+`R`
+
+- Right value if current state is Right,
+
+**`Throws`**
+
+- L if current state is Left
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[throw](either._internal_.EitherConstructor.md#throw)
+
+#### Defined in
+
+dist/either.d.ts:58
+
+___
+
+### toJSON
+
+▸ **toJSON**(): `Readonly`\<\{ `left`: `L` ; `name`: ``"Either"`` ; `type`: [`Left`](../enums/either.EitherType.md#left) }\>
+
+#### Returns
+
+`Readonly`\<\{ `left`: `L` ; `name`: ``"Either"`` ; `type`: [`Left`](../enums/either.EitherType.md#left) }\>
+
+#### Defined in
+
+dist/either.d.ts:90
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `R`
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
+
+#### Returns
+
+`R`
+
+- Right value of Either, if right
+
+**`Deprecated`**
+
+- **If Left value is Error use [throw](either._internal_.Right.md#throw) instead**
+
+**`Throws`**
+
+- UnwrapCustomError is Left with provided message
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrap](either._internal_.EitherConstructor.md#unwrap)
+
+#### Defined in
+
+dist/either.d.ts:51
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrapOr](either._internal_.EitherConstructor.md#unwrapor)
+
+#### Defined in
+
+dist/either.d.ts:15
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `fallback` | (`value`: `L`) => `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrapOrElse](either._internal_.EitherConstructor.md#unwraporelse)
+
+#### Defined in
+
+dist/either.d.ts:14
+
+___
+
+### value
+
+▸ **value**(): `L` \| `R`
+
+Return value of Either independent if it is Right or Left
+
+#### Returns
+
+`L` \| `R`
+
+**`Deprecated`**
+
+- probably should not be used, please refactor code or use [fold](either._internal_.Right.md#fold)
+
+**`See`**
+
+[fold](either._internal_.Right.md#fold)
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[value](either._internal_.EitherConstructor.md#value)
+
+#### Defined in
+
+dist/either.d.ts:66
+
+___
+
+### zip
+
+▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](../modules/either.md#either)\<`A`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[zip](either._internal_.EitherConstructor.md#zip)
+
+#### Defined in
+
+dist/either.d.ts:42
+
+___
+
+### create
+
+▸ `Static` **create**\<`L`, `R`\>(`left`): [`Left`](either._internal_.Left.md)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `left` | `L` |
+
+#### Returns
+
+[`Left`](either._internal_.Left.md)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:75
diff --git a/docs/api/classes/either._internal_.Right.md b/docs/api/classes/either._internal_.Right.md
new file mode 100644
index 0000000..f309864
--- /dev/null
+++ b/docs/api/classes/either._internal_.Right.md
@@ -0,0 +1,1131 @@
+[Package](../README.md) / [Modules](../modules.md) / [either](../modules/either.md) / [\](../modules/either._internal_.md) / Right
+
+# Class: Right\
+
+[either](../modules/either.md).[\](../modules/either._internal_.md).Right
+
+## Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+## Hierarchy
+
+- [`EitherConstructor`](either._internal_.EitherConstructor.md)\<`L`, `R`\>
+
+ ↳ **`Right`**
+
+## Implements
+
+- [`SerializedRight`](../modules/either._internal_.md#serializedright)\<`R`\>
+
+## Table of contents
+
+### Constructors
+
+- [constructor](either._internal_.Right.md#constructor)
+
+### Properties
+
+- [right](either._internal_.Right.md#right)
+
+### Accessors
+
+- [[toStringTag]](either._internal_.Right.md#[tostringtag])
+- [name](either._internal_.Right.md#name)
+- [type](either._internal_.Right.md#type)
+
+### Methods
+
+- [any](either._internal_.Right.md#any)
+- [apply](either._internal_.Right.md#apply)
+- [asyncApply](either._internal_.Right.md#asyncapply)
+- [asyncChain](either._internal_.Right.md#asyncchain)
+- [asyncMap](either._internal_.Right.md#asyncmap)
+- [await](either._internal_.Right.md#await)
+- [biMap](either._internal_.Right.md#bimap)
+- [chain](either._internal_.Right.md#chain)
+- [default](either._internal_.Right.md#default)
+- [fold](either._internal_.Right.md#fold)
+- [getLeft](either._internal_.Right.md#getleft)
+- [getRight](either._internal_.Right.md#getright)
+- [isLeft](either._internal_.Right.md#isleft)
+- [isRight](either._internal_.Right.md#isright)
+- [join](either._internal_.Right.md#join)
+- [map](either._internal_.Right.md#map)
+- [mapLeft](either._internal_.Right.md#mapleft)
+- [mapRight](either._internal_.Right.md#mapright)
+- [or](either._internal_.Right.md#or)
+- [orAsync](either._internal_.Right.md#orasync)
+- [orLazy](either._internal_.Right.md#orlazy)
+- [pipe](either._internal_.Right.md#pipe)
+- [promise](either._internal_.Right.md#promise)
+- [swap](either._internal_.Right.md#swap)
+- [tap](either._internal_.Right.md#tap)
+- [throw](either._internal_.Right.md#throw)
+- [toJSON](either._internal_.Right.md#tojson)
+- [unwrap](either._internal_.Right.md#unwrap)
+- [unwrapOr](either._internal_.Right.md#unwrapor)
+- [unwrapOrElse](either._internal_.Right.md#unwraporelse)
+- [value](either._internal_.Right.md#value)
+- [zip](either._internal_.Right.md#zip)
+- [create](either._internal_.Right.md#create)
+
+## Constructors
+
+### constructor
+
+• `Private` **new Right**\<`L`, `R`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Overrides
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[constructor](either._internal_.EitherConstructor.md#constructor)
+
+#### Defined in
+
+dist/either.d.ts:112
+
+## Properties
+
+### right
+
+• `Readonly` **right**: `R`
+
+**`Deprecated`**
+
+Should not be used directly, public only for serialization & type check use [getRight](either._internal_.Right.md#getright)
+
+**`See`**
+
+[getRight](either._internal_.Right.md#getright)
+
+**`Memberof`**
+
+Right
+
+#### Implementation of
+
+SerializedRight.right
+
+#### Defined in
+
+dist/either.d.ts:106
+
+## Accessors
+
+### [toStringTag]
+
+• `get` **[toStringTag]**(): [`Right`](../enums/either.EitherType.md#right)
+
+#### Returns
+
+[`Right`](../enums/either.EitherType.md#right)
+
+#### Defined in
+
+dist/either.d.ts:107
+
+___
+
+### name
+
+• `get` **name**(): ``"Either"``
+
+#### Returns
+
+``"Either"``
+
+#### Implementation of
+
+SerializedRight.name
+
+#### Defined in
+
+dist/either.d.ts:108
+
+___
+
+### type
+
+• `get` **type**(): [`Right`](../enums/either.EitherType.md#right)
+
+#### Returns
+
+[`Right`](../enums/either.EitherType.md#right)
+
+#### Implementation of
+
+SerializedRight.type
+
+#### Defined in
+
+dist/either.d.ts:109
+
+## Methods
+
+### any
+
+▸ **any**\<`T`\>(`this`): `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`T`, `T`\> |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[any](either._internal_.EitherConstructor.md#any)
+
+#### Defined in
+
+dist/either.d.ts:67
+
+___
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[apply](either._internal_.EitherConstructor.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:20
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[apply](either._internal_.EitherConstructor.md#apply)
+
+#### Defined in
+
+dist/either.d.ts:21
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncApply](either._internal_.EitherConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/either.d.ts:22
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, `A`\> |
+| `map` | [`Either`](../modules/either.md#either)\<`L`, [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncApply](either._internal_.EitherConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/either.d.ts:23
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`A`, `B`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncChain](either._internal_.EitherConstructor.md#asyncchain)
+
+#### Defined in
+
+dist/either.d.ts:27
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[asyncMap](either._internal_.EitherConstructor.md#asyncmap)
+
+#### Defined in
+
+dist/either.d.ts:28
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `T`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[await](either._internal_.EitherConstructor.md#await)
+
+#### Defined in
+
+dist/either.d.ts:29
+
+___
+
+### biMap
+
+▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`A`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[biMap](either._internal_.EitherConstructor.md#bimap)
+
+#### Defined in
+
+dist/either.d.ts:26
+
+___
+
+### chain
+
+▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, [`Either`](../modules/either.md#either)\<`A`, `B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, `B`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[chain](either._internal_.EitherConstructor.md#chain)
+
+#### Defined in
+
+dist/either.d.ts:25
+
+___
+
+### default
+
+▸ **default**(`value`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `R` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[default](either._internal_.EitherConstructor.md#default)
+
+#### Defined in
+
+dist/either.d.ts:38
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapLeft` | [`Mapper`](../modules/types.md#mapper)\<`L`, `A`\> |
+| `mapRight` | [`Mapper`](../modules/types.md#mapper)\<`R`, `B`\> |
+
+#### Returns
+
+`A` \| `B`
+
+**`Throws`**
+
+- InvalidStateError if Either state is neither Left neither Right, this probably should never happen
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[fold](either._internal_.EitherConstructor.md#fold)
+
+#### Defined in
+
+dist/either.d.ts:37
+
+___
+
+### getLeft
+
+▸ **getLeft**(): `undefined`
+
+#### Returns
+
+`undefined`
+
+#### Defined in
+
+dist/either.d.ts:111
+
+___
+
+### getRight
+
+▸ **getRight**(): `R`
+
+#### Returns
+
+`R`
+
+#### Defined in
+
+dist/either.d.ts:110
+
+___
+
+### isLeft
+
+▸ **isLeft**(): this is Left\
+
+#### Returns
+
+this is Left\
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[isLeft](either._internal_.EitherConstructor.md#isleft)
+
+#### Defined in
+
+dist/either.d.ts:12
+
+___
+
+### isRight
+
+▸ **isRight**(): this is Right\
+
+#### Returns
+
+this is Right\
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[isRight](either._internal_.EitherConstructor.md#isright)
+
+#### Defined in
+
+dist/either.d.ts:13
+
+___
+
+### join
+
+▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `L2` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Either`](../modules/either.md#either)\<`L1`, [`Either`](../modules/either.md#either)\<`L2`, `R`\>\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L1` \| `L2`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[join](either._internal_.EitherConstructor.md#join)
+
+#### Defined in
+
+dist/either.d.ts:16
+
+___
+
+### map
+
+▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[map](either._internal_.EitherConstructor.md#map)
+
+#### Defined in
+
+dist/either.d.ts:18
+
+___
+
+### mapLeft
+
+▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`L`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`T`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[mapLeft](either._internal_.EitherConstructor.md#mapleft)
+
+#### Defined in
+
+dist/either.d.ts:17
+
+___
+
+### mapRight
+
+▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`R`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `T`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[mapRight](either._internal_.EitherConstructor.md#mapright)
+
+#### Defined in
+
+dist/either.d.ts:19
+
+___
+
+### or
+
+▸ **or**(`x`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[or](either._internal_.EitherConstructor.md#or)
+
+#### Defined in
+
+dist/either.d.ts:39
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\> |
+
+#### Returns
+
+`Promise`\<[`Either`](../modules/either.md#either)\<`L`, `R`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[orAsync](either._internal_.EitherConstructor.md#orasync)
+
+#### Defined in
+
+dist/either.d.ts:41
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Either`](../modules/either.md#either)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[orLazy](either._internal_.EitherConstructor.md#orlazy)
+
+#### Defined in
+
+dist/either.d.ts:40
+
+___
+
+### pipe
+
+▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Either`](../modules/either.md#either)\<`L`, `R`\>, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[pipe](either._internal_.EitherConstructor.md#pipe)
+
+#### Defined in
+
+dist/either.d.ts:11
+
+___
+
+### promise
+
+▸ **promise**(): `Promise`\<`R`\>
+
+#### Returns
+
+`Promise`\<`R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[promise](either._internal_.EitherConstructor.md#promise)
+
+#### Defined in
+
+dist/either.d.ts:52
+
+___
+
+### swap
+
+▸ **swap**(): [`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`R`, `L`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[swap](either._internal_.EitherConstructor.md#swap)
+
+#### Defined in
+
+dist/either.d.ts:24
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`R`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L`, `R`\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[tap](either._internal_.EitherConstructor.md#tap)
+
+#### Defined in
+
+dist/either.d.ts:10
+
+___
+
+### throw
+
+▸ **throw**(): `R`
+
+#### Returns
+
+`R`
+
+- Right value if current state is Right,
+
+**`Throws`**
+
+- L if current state is Left
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[throw](either._internal_.EitherConstructor.md#throw)
+
+#### Defined in
+
+dist/either.d.ts:58
+
+___
+
+### toJSON
+
+▸ **toJSON**(): `Readonly`\<\{ `name`: ``"Either"`` ; `right`: `R` ; `type`: [`Right`](../enums/either.EitherType.md#right) }\>
+
+#### Returns
+
+`Readonly`\<\{ `name`: ``"Either"`` ; `right`: `R` ; `type`: [`Right`](../enums/either.EitherType.md#right) }\>
+
+#### Defined in
+
+dist/either.d.ts:113
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `R`
+
+#### Parameters
+
+| Name | Type | Description |
+| :------ | :------ | :------ |
+| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
+
+#### Returns
+
+`R`
+
+- Right value of Either, if right
+
+**`Deprecated`**
+
+- **If Left value is Error use [throw](either._internal_.Right.md#throw) instead**
+
+**`Throws`**
+
+- UnwrapCustomError is Left with provided message
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrap](either._internal_.EitherConstructor.md#unwrap)
+
+#### Defined in
+
+dist/either.d.ts:51
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrapOr](either._internal_.EitherConstructor.md#unwrapor)
+
+#### Defined in
+
+dist/either.d.ts:15
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `fallback` | (`value`: `L`) => `T` |
+
+#### Returns
+
+`R` \| `T`
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[unwrapOrElse](either._internal_.EitherConstructor.md#unwraporelse)
+
+#### Defined in
+
+dist/either.d.ts:14
+
+___
+
+### value
+
+▸ **value**(): `L` \| `R`
+
+Return value of Either independent if it is Right or Left
+
+#### Returns
+
+`L` \| `R`
+
+**`Deprecated`**
+
+- probably should not be used, please refactor code or use [fold](either._internal_.Right.md#fold)
+
+**`See`**
+
+[fold](either._internal_.Right.md#fold)
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[value](either._internal_.EitherConstructor.md#value)
+
+#### Defined in
+
+dist/either.d.ts:66
+
+___
+
+### zip
+
+▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](../modules/either.md#either)\<`A`, `B`\> |
+
+#### Returns
+
+[`Either`](../modules/either.md#either)\<`L` \| `A`, [`Pair`](../modules/index.md#pair)\<`R`, `B`\>\>
+
+#### Inherited from
+
+[EitherConstructor](either._internal_.EitherConstructor.md).[zip](either._internal_.EitherConstructor.md#zip)
+
+#### Defined in
+
+dist/either.d.ts:42
+
+___
+
+### create
+
+▸ `Static` **create**\<`R`, `L`\>(`right`): [`Right`](either._internal_.Right.md)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `R` | `R` |
+| `L` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `right` | `R` |
+
+#### Returns
+
+[`Right`](either._internal_.Right.md)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:98
diff --git a/docs/api/classes/identity.Identity.md b/docs/api/classes/identity.Identity.md
new file mode 100644
index 0000000..b759374
--- /dev/null
+++ b/docs/api/classes/identity.Identity.md
@@ -0,0 +1,620 @@
+[Package](../README.md) / [Modules](../modules.md) / [identity](../modules/identity.md) / Identity
+
+# Class: Identity\
+
+[identity](../modules/identity.md).Identity
+
+## Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+## Implements
+
+- [`AsyncMonad`](../interfaces/index.AsyncMonad.md)\<`T`\>
+- [`Container`](../interfaces/index.Container.md)\<`T`\>
+- [`Pipe`](../interfaces/types.Pipe.md)
+
+## Table of contents
+
+### Constructors
+
+- [constructor](identity.Identity.md#constructor)
+
+### Properties
+
+- [value](identity.Identity.md#value)
+
+### Accessors
+
+- [[toStringTag]](identity.Identity.md#[tostringtag])
+- [name](identity.Identity.md#name)
+
+### Methods
+
+- [apply](identity.Identity.md#apply)
+- [asyncApply](identity.Identity.md#asyncapply)
+- [asyncChain](identity.Identity.md#asyncchain)
+- [asyncMap](identity.Identity.md#asyncmap)
+- [await](identity.Identity.md#await)
+- [chain](identity.Identity.md#chain)
+- [fold](identity.Identity.md#fold)
+- [join](identity.Identity.md#join)
+- [map](identity.Identity.md#map)
+- [pipe](identity.Identity.md#pipe)
+- [tap](identity.Identity.md#tap)
+- [unwrap](identity.Identity.md#unwrap)
+- [unwrapOr](identity.Identity.md#unwrapor)
+- [unwrapOrElse](identity.Identity.md#unwraporelse)
+- [zip](identity.Identity.md#zip)
+- [from](identity.Identity.md#from)
+
+## Constructors
+
+### constructor
+
+• `Private` **new Identity**\<`T`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/identity.d.ts:8
+
+## Properties
+
+### value
+
+• `Readonly` **value**: `T`
+
+#### Defined in
+
+dist/identity.d.ts:4
+
+## Accessors
+
+### [toStringTag]
+
+• `get` **[toStringTag]**(): ``"Identity"``
+
+#### Returns
+
+``"Identity"``
+
+#### Defined in
+
+dist/identity.d.ts:6
+
+___
+
+### name
+
+• `get` **name**(): ``"Identity"``
+
+#### Returns
+
+``"Identity"``
+
+#### Defined in
+
+dist/identity.d.ts:7
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Identity`](identity.Identity.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Identity`](identity.Identity.md)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[apply](../interfaces/index.AsyncMonad.md#apply)
+
+#### Defined in
+
+dist/identity.d.ts:15
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Identity`](identity.Identity.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<`A`\> |
+| `map` | [`Identity`](identity.Identity.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[apply](../interfaces/index.AsyncMonad.md#apply)
+
+#### Defined in
+
+dist/identity.d.ts:16
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Identity`](identity.Identity.md)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Defined in
+
+dist/identity.d.ts:17
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<`A`\> |
+| `map` | [`Identity`](identity.Identity.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Defined in
+
+dist/identity.d.ts:18
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Identity`](identity.Identity.md)\<`B`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[asyncChain](../interfaces/index.AsyncMonad.md#asyncchain)
+
+#### Defined in
+
+dist/identity.d.ts:20
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Identity`](identity.Identity.md)\<`B`\>\>
+
+#### Defined in
+
+dist/identity.d.ts:21
+
+___
+
+### await
+
+▸ **await**\<`X`\>(`this`): `Promise`\<[`Identity`](identity.Identity.md)\<`X`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `X` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<[`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`X`\>\> |
+
+#### Returns
+
+`Promise`\<[`Identity`](identity.Identity.md)\<`X`\>\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[await](../interfaces/index.AsyncMonad.md#await)
+
+#### Defined in
+
+dist/identity.d.ts:22
+
+___
+
+### chain
+
+▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Identity`](identity.Identity.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`Identity`](identity.Identity.md)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`B`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[chain](../interfaces/index.AsyncMonad.md#chain)
+
+#### Defined in
+
+dist/identity.d.ts:19
+
+___
+
+### fold
+
+▸ **fold**\<`A`\>(`mapper`): `A`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapper` | [`Mapper`](../modules/types.md#mapper)\<`T`, `A`\> |
+
+#### Returns
+
+`A`
+
+#### Defined in
+
+dist/identity.d.ts:23
+
+___
+
+### join
+
+▸ **join**\<`A`\>(`this`): [`Identity`](identity.Identity.md)\<`A`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Identity`](identity.Identity.md)\<[`Identity`](identity.Identity.md)\<`A`\>\> |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`A`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[join](../interfaces/index.AsyncMonad.md#join)
+
+#### Defined in
+
+dist/identity.d.ts:13
+
+___
+
+### map
+
+▸ **map**\<`A`, `P`\>(`map`, `...parameters`): [`Identity`](identity.Identity.md)\<`A`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `A`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`A`\>
+
+#### Implementation of
+
+[AsyncMonad](../interfaces/index.AsyncMonad.md).[map](../interfaces/index.AsyncMonad.md#map)
+
+#### Defined in
+
+dist/identity.d.ts:14
+
+___
+
+### pipe
+
+▸ **pipe**\<`A`, `P`\>(`pipe`, `...parameters`): `A`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Identity`](identity.Identity.md)\<`T`\>, `A`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`A`
+
+#### Implementation of
+
+[Pipe](../interfaces/types.Pipe.md).[pipe](../interfaces/types.Pipe.md#pipe)
+
+#### Defined in
+
+dist/identity.d.ts:10
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Identity`](identity.Identity.md)\<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`T`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`T`\>
+
+#### Defined in
+
+dist/identity.d.ts:9
+
+___
+
+### unwrap
+
+▸ **unwrap**(): `T`
+
+#### Returns
+
+`T`
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrap](../interfaces/index.Container.md#unwrap)
+
+#### Defined in
+
+dist/identity.d.ts:25
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`X`\>(`value`): `T` \| `X`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `X` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `X` |
+
+#### Returns
+
+`T` \| `X`
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrapOr](../interfaces/index.Container.md#unwrapor)
+
+#### Defined in
+
+dist/identity.d.ts:12
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`X`\>(`fallback`): `T` \| `X`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `X` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `fallback` | () => `X` |
+
+#### Returns
+
+`T` \| `X`
+
+#### Defined in
+
+dist/identity.d.ts:11
+
+___
+
+### zip
+
+▸ **zip**\<`A`\>(`either`): [`Identity`](identity.Identity.md)\<[`T`, `A`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Identity`](identity.Identity.md)\<`A`\> |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<[`T`, `A`]\>
+
+#### Defined in
+
+dist/identity.d.ts:24
+
+___
+
+### from
+
+▸ `Static` **from**\<`T`\>(`value`): [`Identity`](identity.Identity.md)\<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `never` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Identity`](identity.Identity.md)\<`T`\>
+
+#### Defined in
+
+dist/identity.d.ts:5
diff --git a/docs/api/classes/DecorationError.md b/docs/api/classes/index.DecorationError.md
similarity index 54%
rename from docs/api/classes/DecorationError.md
rename to docs/api/classes/index.DecorationError.md
index 8b1cffe..9256cf5 100644
--- a/docs/api/classes/DecorationError.md
+++ b/docs/api/classes/index.DecorationError.md
@@ -1,7 +1,9 @@
-[Package](../README.md) / [Exports](../modules.md) / DecorationError
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / DecorationError
# Class: DecorationError
+[index](../modules/index.md).DecorationError
+
## Hierarchy
- `Error`
@@ -12,12 +14,12 @@
### Constructors
-- [constructor](DecorationError.md#constructor)
+- [constructor](index.DecorationError.md#constructor)
### Properties
-- [name](DecorationError.md#name)
-- [Messages](DecorationError.md#messages)
+- [name](index.DecorationError.md#name)
+- [Messages](index.DecorationError.md#messages)
## Constructors
@@ -29,7 +31,7 @@
| Name | Type |
| :------ | :------ |
-| `message?` | [`EXPECTED_DECORATING_METHOD`](../enums/internal_.DecorationErrorMessages.md#expected_decorating_method) |
+| `message?` | [`EXPECTED_DECORATING_METHOD`](../enums/index._internal_.DecorationErrorMessages.md#expected_decorating_method) |
#### Overrides
@@ -57,7 +59,7 @@ ___
### Messages
-▪ `Static` `Readonly` **Messages**: typeof [`DecorationErrorMessages`](../enums/internal_.DecorationErrorMessages.md)
+▪ `Static` `Readonly` **Messages**: typeof [`DecorationErrorMessages`](../enums/index._internal_.DecorationErrorMessages.md)
#### Defined in
diff --git a/docs/api/classes/DeserializationError.md b/docs/api/classes/index.DeserializationError.md
similarity index 54%
rename from docs/api/classes/DeserializationError.md
rename to docs/api/classes/index.DeserializationError.md
index 8b615df..3c0501e 100644
--- a/docs/api/classes/DeserializationError.md
+++ b/docs/api/classes/index.DeserializationError.md
@@ -1,7 +1,9 @@
-[Package](../README.md) / [Exports](../modules.md) / DeserializationError
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / DeserializationError
# Class: DeserializationError
+[index](../modules/index.md).DeserializationError
+
## Hierarchy
- `Error`
@@ -12,12 +14,12 @@
### Constructors
-- [constructor](DeserializationError.md#constructor)
+- [constructor](index.DeserializationError.md#constructor)
### Properties
-- [name](DeserializationError.md#name)
-- [Messages](DeserializationError.md#messages)
+- [name](index.DeserializationError.md#name)
+- [Messages](index.DeserializationError.md#messages)
## Constructors
@@ -29,7 +31,7 @@
| Name | Type |
| :------ | :------ |
-| `message` | [`DeserializationErrorMessages`](../enums/internal_.DeserializationErrorMessages.md) |
+| `message` | [`DeserializationErrorMessages`](../enums/index._internal_.DeserializationErrorMessages.md) |
#### Overrides
@@ -57,7 +59,7 @@ ___
### Messages
-▪ `Static` `Readonly` **Messages**: typeof [`DeserializationErrorMessages`](../enums/internal_.DeserializationErrorMessages.md)
+▪ `Static` `Readonly` **Messages**: typeof [`DeserializationErrorMessages`](../enums/index._internal_.DeserializationErrorMessages.md)
#### Defined in
diff --git a/docs/api/classes/InvalidStateError.md b/docs/api/classes/index.InvalidStateError.md
similarity index 56%
rename from docs/api/classes/InvalidStateError.md
rename to docs/api/classes/index.InvalidStateError.md
index 513c9d9..df4af18 100644
--- a/docs/api/classes/InvalidStateError.md
+++ b/docs/api/classes/index.InvalidStateError.md
@@ -1,7 +1,9 @@
-[Package](../README.md) / [Exports](../modules.md) / InvalidStateError
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / InvalidStateError
# Class: InvalidStateError
+[index](../modules/index.md).InvalidStateError
+
## Hierarchy
- `Error`
@@ -12,12 +14,12 @@
### Constructors
-- [constructor](InvalidStateError.md#constructor)
+- [constructor](index.InvalidStateError.md#constructor)
### Properties
-- [name](InvalidStateError.md#name)
-- [Messages](InvalidStateError.md#messages)
+- [name](index.InvalidStateError.md#name)
+- [Messages](index.InvalidStateError.md#messages)
## Constructors
@@ -29,7 +31,7 @@
| Name | Type |
| :------ | :------ |
-| `message?` | [`InvalidStateMessages`](../enums/internal_.InvalidStateMessages.md) |
+| `message?` | [`InvalidStateMessages`](../enums/index._internal_.InvalidStateMessages.md) |
#### Overrides
@@ -57,7 +59,7 @@ ___
### Messages
-▪ `Static` `Readonly` **Messages**: typeof [`InvalidStateMessages`](../enums/internal_.InvalidStateMessages.md)
+▪ `Static` `Readonly` **Messages**: typeof [`InvalidStateMessages`](../enums/index._internal_.InvalidStateMessages.md)
#### Defined in
diff --git a/docs/api/classes/UnwrapCustomError.md b/docs/api/classes/index.UnwrapCustomError.md
similarity index 66%
rename from docs/api/classes/UnwrapCustomError.md
rename to docs/api/classes/index.UnwrapCustomError.md
index 42523a9..19b59fd 100644
--- a/docs/api/classes/UnwrapCustomError.md
+++ b/docs/api/classes/index.UnwrapCustomError.md
@@ -1,7 +1,9 @@
-[Package](../README.md) / [Exports](../modules.md) / UnwrapCustomError
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / UnwrapCustomError
# Class: UnwrapCustomError
+[index](../modules/index.md).UnwrapCustomError
+
## Hierarchy
- `Error`
@@ -12,16 +14,16 @@
### Constructors
-- [constructor](UnwrapCustomError.md#constructor)
+- [constructor](index.UnwrapCustomError.md#constructor)
### Properties
-- [name](UnwrapCustomError.md#name)
-- [Messages](UnwrapCustomError.md#messages)
+- [name](index.UnwrapCustomError.md#name)
+- [Messages](index.UnwrapCustomError.md#messages)
### Methods
-- [inlineThrow](UnwrapCustomError.md#inlinethrow)
+- [inlineThrow](index.UnwrapCustomError.md#inlinethrow)
## Constructors
@@ -61,7 +63,7 @@ ___
### Messages
-▪ `Static` `Readonly` **Messages**: typeof [`UnwrapCustomErrorMessages`](../enums/internal_.UnwrapCustomErrorMessages.md)
+▪ `Static` `Readonly` **Messages**: typeof [`UnwrapCustomErrorMessages`](../enums/index._internal_.UnwrapCustomErrorMessages.md)
#### Defined in
diff --git a/docs/api/classes/internal_.EitherConstructor.md b/docs/api/classes/internal_.EitherConstructor.md
deleted file mode 100644
index 694921b..0000000
--- a/docs/api/classes/internal_.EitherConstructor.md
+++ /dev/null
@@ -1,893 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / EitherConstructor
-
-# Class: EitherConstructor\
-
-[\](../modules/internal_.md).EitherConstructor
-
-## Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-## Hierarchy
-
-- **`EitherConstructor`**
-
- ↳ [`Right`](internal_.Right.md)
-
- ↳ [`Left`](internal_.Left.md)
-
-## Implements
-
-- [`AsyncMonad`](../interfaces/AsyncMonad.md)\<`R`\>
-- [`Alternative`](../interfaces/Alternative.md)\<`R`\>
-- [`Container`](../interfaces/Container.md)\<`R`\>
-- [`Pipe`](../interfaces/internal_.Pipe.md)
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.EitherConstructor.md#constructor)
-
-### Methods
-
-- [any](internal_.EitherConstructor.md#any)
-- [apply](internal_.EitherConstructor.md#apply)
-- [asyncApply](internal_.EitherConstructor.md#asyncapply)
-- [asyncChain](internal_.EitherConstructor.md#asyncchain)
-- [asyncMap](internal_.EitherConstructor.md#asyncmap)
-- [await](internal_.EitherConstructor.md#await)
-- [biMap](internal_.EitherConstructor.md#bimap)
-- [chain](internal_.EitherConstructor.md#chain)
-- [default](internal_.EitherConstructor.md#default)
-- [fold](internal_.EitherConstructor.md#fold)
-- [isLeft](internal_.EitherConstructor.md#isleft)
-- [isRight](internal_.EitherConstructor.md#isright)
-- [join](internal_.EitherConstructor.md#join)
-- [map](internal_.EitherConstructor.md#map)
-- [mapLeft](internal_.EitherConstructor.md#mapleft)
-- [mapRight](internal_.EitherConstructor.md#mapright)
-- [or](internal_.EitherConstructor.md#or)
-- [orAsync](internal_.EitherConstructor.md#orasync)
-- [orLazy](internal_.EitherConstructor.md#orlazy)
-- [pipe](internal_.EitherConstructor.md#pipe)
-- [promise](internal_.EitherConstructor.md#promise)
-- [swap](internal_.EitherConstructor.md#swap)
-- [tap](internal_.EitherConstructor.md#tap)
-- [throw](internal_.EitherConstructor.md#throw)
-- [unwrap](internal_.EitherConstructor.md#unwrap)
-- [unwrapOr](internal_.EitherConstructor.md#unwrapor)
-- [unwrapOrElse](internal_.EitherConstructor.md#unwraporelse)
-- [value](internal_.EitherConstructor.md#value)
-- [zip](internal_.EitherConstructor.md#zip)
-
-## Constructors
-
-### constructor
-
-• **new EitherConstructor**\<`L`, `R`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-## Methods
-
-### any
-
-▸ **any**\<`T`\>(`this`): `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`T`, `T`\> |
-
-#### Returns
-
-`T`
-
-#### Defined in
-
-dist/either.d.ts:67
-
-___
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[apply](../interfaces/AsyncMonad.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:20
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[apply](../interfaces/AsyncMonad.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:21
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Defined in
-
-dist/either.d.ts:22
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Defined in
-
-dist/either.d.ts:23
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`A`, `B`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[asyncChain](../interfaces/AsyncMonad.md#asyncchain)
-
-#### Defined in
-
-dist/either.d.ts:27
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Defined in
-
-dist/either.d.ts:28
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[await](../interfaces/AsyncMonad.md#await)
-
-#### Defined in
-
-dist/either.d.ts:29
-
-___
-
-### biMap
-
-▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Defined in
-
-dist/either.d.ts:26
-
-___
-
-### chain
-
-▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`Either`](../modules/internal_.md#either)\<`A`, `B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[chain](../interfaces/AsyncMonad.md#chain)
-
-#### Defined in
-
-dist/either.d.ts:25
-
-___
-
-### default
-
-▸ **default**(`value`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `R` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Implementation of
-
-[Alternative](../interfaces/Alternative.md).[default](../interfaces/Alternative.md#default)
-
-#### Defined in
-
-dist/either.d.ts:38
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-`A` \| `B`
-
-**`Throws`**
-
-- [InvalidStateError](InvalidStateError.md) if Either state is neither Left neither Right, this probably should never happen
-
-#### Defined in
-
-dist/either.d.ts:37
-
-___
-
-### isLeft
-
-▸ **isLeft**(): this is Left\
-
-#### Returns
-
-this is Left\
-
-#### Defined in
-
-dist/either.d.ts:12
-
-___
-
-### isRight
-
-▸ **isRight**(): this is Right\
-
-#### Returns
-
-this is Right\
-
-#### Defined in
-
-dist/either.d.ts:13
-
-___
-
-### join
-
-▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L1` |
-| `L2` |
-| `R` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L1`, [`Either`](../modules/internal_.md#either)\<`L2`, `R`\>\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[join](../interfaces/AsyncMonad.md#join)
-
-#### Defined in
-
-dist/either.d.ts:16
-
-___
-
-### map
-
-▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[map](../interfaces/AsyncMonad.md#map)
-
-#### Defined in
-
-dist/either.d.ts:18
-
-___
-
-### mapLeft
-
-▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Defined in
-
-dist/either.d.ts:17
-
-___
-
-### mapRight
-
-▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Defined in
-
-dist/either.d.ts:19
-
-___
-
-### or
-
-▸ **or**(`x`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Implementation of
-
-[Alternative](../interfaces/Alternative.md).[or](../interfaces/Alternative.md#or)
-
-#### Defined in
-
-dist/either.d.ts:39
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Defined in
-
-dist/either.d.ts:41
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Defined in
-
-dist/either.d.ts:40
-
-___
-
-### pipe
-
-▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`T`
-
-#### Implementation of
-
-[Pipe](../interfaces/internal_.Pipe.md).[pipe](../interfaces/internal_.Pipe.md#pipe)
-
-#### Defined in
-
-dist/either.d.ts:11
-
-___
-
-### promise
-
-▸ **promise**(): `Promise`\<`R`\>
-
-#### Returns
-
-`Promise`\<`R`\>
-
-#### Defined in
-
-dist/either.d.ts:52
-
-___
-
-### swap
-
-▸ **swap**(): [`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Defined in
-
-dist/either.d.ts:24
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Defined in
-
-dist/either.d.ts:10
-
-___
-
-### throw
-
-▸ **throw**(): `R`
-
-#### Returns
-
-`R`
-
-- Right value if current state is Right,
-
-**`Throws`**
-
-- L if current state is Left
-
-#### Defined in
-
-dist/either.d.ts:58
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `R`
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
-
-#### Returns
-
-`R`
-
-- Right value of Either, if right
-
-**`Deprecated`**
-
-- **If Left value is Error use [throw](internal_.Right.md#throw) instead**
-
-**`Throws`**
-
-- [UnwrapCustomError](UnwrapCustomError.md) is Left with provided message
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrap](../interfaces/Container.md#unwrap)
-
-#### Defined in
-
-dist/either.d.ts:51
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrapOr](../interfaces/Container.md#unwrapor)
-
-#### Defined in
-
-dist/either.d.ts:15
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `fallback` | (`value`: `L`) => `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Defined in
-
-dist/either.d.ts:14
-
-___
-
-### value
-
-▸ **value**(): `L` \| `R`
-
-Return value of Either independent if it is Right or Left
-
-#### Returns
-
-`L` \| `R`
-
-**`Deprecated`**
-
-- probably should not be used, please refactor code or use [fold](internal_.Right.md#fold)
-
-**`See`**
-
-[fold](internal_.Right.md#fold)
-
-#### Defined in
-
-dist/either.d.ts:66
-
-___
-
-### zip
-
-▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `either` | [`Either`](../modules/internal_.md#either)\<`A`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Defined in
-
-dist/either.d.ts:42
diff --git a/docs/api/classes/internal_.Identity.md b/docs/api/classes/internal_.Identity.md
deleted file mode 100644
index c5ee334..0000000
--- a/docs/api/classes/internal_.Identity.md
+++ /dev/null
@@ -1,620 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / Identity
-
-# Class: Identity\
-
-[\](../modules/internal_.md).Identity
-
-## Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-## Implements
-
-- [`AsyncMonad`](../interfaces/AsyncMonad.md)\<`T`\>
-- [`Container`](../interfaces/Container.md)\<`T`\>
-- [`Pipe`](../interfaces/internal_.Pipe.md)
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.Identity.md#constructor)
-
-### Properties
-
-- [value](internal_.Identity.md#value)
-
-### Accessors
-
-- [[toStringTag]](internal_.Identity.md#[tostringtag])
-- [name](internal_.Identity.md#name)
-
-### Methods
-
-- [apply](internal_.Identity.md#apply)
-- [asyncApply](internal_.Identity.md#asyncapply)
-- [asyncChain](internal_.Identity.md#asyncchain)
-- [asyncMap](internal_.Identity.md#asyncmap)
-- [await](internal_.Identity.md#await)
-- [chain](internal_.Identity.md#chain)
-- [fold](internal_.Identity.md#fold)
-- [join](internal_.Identity.md#join)
-- [map](internal_.Identity.md#map)
-- [pipe](internal_.Identity.md#pipe)
-- [tap](internal_.Identity.md#tap)
-- [unwrap](internal_.Identity.md#unwrap)
-- [unwrapOr](internal_.Identity.md#unwrapor)
-- [unwrapOrElse](internal_.Identity.md#unwraporelse)
-- [zip](internal_.Identity.md#zip)
-- [from](internal_.Identity.md#from)
-
-## Constructors
-
-### constructor
-
-• `Private` **new Identity**\<`T`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/identity.d.ts:8
-
-## Properties
-
-### value
-
-• `Readonly` **value**: `T`
-
-#### Defined in
-
-dist/identity.d.ts:4
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): ``"Identity"``
-
-#### Returns
-
-``"Identity"``
-
-#### Defined in
-
-dist/identity.d.ts:6
-
-___
-
-### name
-
-• `get` **name**(): ``"Identity"``
-
-#### Returns
-
-``"Identity"``
-
-#### Defined in
-
-dist/identity.d.ts:7
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Identity`](internal_.Identity.md)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[apply](../interfaces/AsyncMonad.md#apply)
-
-#### Defined in
-
-dist/identity.d.ts:15
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<`A`\> |
-| `map` | [`Identity`](internal_.Identity.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[apply](../interfaces/AsyncMonad.md#apply)
-
-#### Defined in
-
-dist/identity.d.ts:16
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Identity`](internal_.Identity.md)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Defined in
-
-dist/identity.d.ts:17
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<`A`\> |
-| `map` | [`Identity`](internal_.Identity.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Defined in
-
-dist/identity.d.ts:18
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Identity`](internal_.Identity.md)\<`B`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[asyncChain](../interfaces/AsyncMonad.md#asyncchain)
-
-#### Defined in
-
-dist/identity.d.ts:20
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Identity`](internal_.Identity.md)\<`B`\>\>
-
-#### Defined in
-
-dist/identity.d.ts:21
-
-___
-
-### await
-
-▸ **await**\<`X`\>(`this`): `Promise`\<[`Identity`](internal_.Identity.md)\<`X`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `X` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<[`MaybePromiseLike`](../modules.md#maybepromiselike)\<`X`\>\> |
-
-#### Returns
-
-`Promise`\<[`Identity`](internal_.Identity.md)\<`X`\>\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[await](../interfaces/AsyncMonad.md#await)
-
-#### Defined in
-
-dist/identity.d.ts:22
-
-___
-
-### chain
-
-▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`Identity`](internal_.Identity.md)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`B`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[chain](../interfaces/AsyncMonad.md#chain)
-
-#### Defined in
-
-dist/identity.d.ts:19
-
-___
-
-### fold
-
-▸ **fold**\<`A`\>(`mapper`): `A`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapper` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `A`\> |
-
-#### Returns
-
-`A`
-
-#### Defined in
-
-dist/identity.d.ts:23
-
-___
-
-### join
-
-▸ **join**\<`A`\>(`this`): [`Identity`](internal_.Identity.md)\<`A`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Identity`](internal_.Identity.md)\<[`Identity`](internal_.Identity.md)\<`A`\>\> |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`A`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[join](../interfaces/AsyncMonad.md#join)
-
-#### Defined in
-
-dist/identity.d.ts:13
-
-___
-
-### map
-
-▸ **map**\<`A`, `P`\>(`map`, `...parameters`): [`Identity`](internal_.Identity.md)\<`A`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `A`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`A`\>
-
-#### Implementation of
-
-[AsyncMonad](../interfaces/AsyncMonad.md).[map](../interfaces/AsyncMonad.md#map)
-
-#### Defined in
-
-dist/identity.d.ts:14
-
-___
-
-### pipe
-
-▸ **pipe**\<`A`, `P`\>(`pipe`, `...parameters`): `A`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Identity`](internal_.Identity.md)\<`T`\>, `A`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`A`
-
-#### Implementation of
-
-[Pipe](../interfaces/internal_.Pipe.md).[pipe](../interfaces/internal_.Pipe.md#pipe)
-
-#### Defined in
-
-dist/identity.d.ts:10
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Identity`](internal_.Identity.md)\<`T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`T`\>
-
-#### Defined in
-
-dist/identity.d.ts:9
-
-___
-
-### unwrap
-
-▸ **unwrap**(): `T`
-
-#### Returns
-
-`T`
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrap](../interfaces/Container.md#unwrap)
-
-#### Defined in
-
-dist/identity.d.ts:25
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`X`\>(`value`): `T` \| `X`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `X` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `X` |
-
-#### Returns
-
-`T` \| `X`
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrapOr](../interfaces/Container.md#unwrapor)
-
-#### Defined in
-
-dist/identity.d.ts:12
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`X`\>(`fallback`): `T` \| `X`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `X` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `fallback` | () => `X` |
-
-#### Returns
-
-`T` \| `X`
-
-#### Defined in
-
-dist/identity.d.ts:11
-
-___
-
-### zip
-
-▸ **zip**\<`A`\>(`either`): [`Identity`](internal_.Identity.md)\<[`T`, `A`]\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `either` | [`Identity`](internal_.Identity.md)\<`A`\> |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<[`T`, `A`]\>
-
-#### Defined in
-
-dist/identity.d.ts:24
-
-___
-
-### from
-
-▸ `Static` **from**\<`T`\>(`value`): [`Identity`](internal_.Identity.md)\<`T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `never` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-[`Identity`](internal_.Identity.md)\<`T`\>
-
-#### Defined in
-
-dist/identity.d.ts:5
diff --git a/docs/api/classes/internal_.Just.md b/docs/api/classes/internal_.Just.md
deleted file mode 100644
index a67bc70..0000000
--- a/docs/api/classes/internal_.Just.md
+++ /dev/null
@@ -1,961 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / Just
-
-# Class: Just\
-
-[\](../modules/internal_.md).Just
-
-## Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-## Hierarchy
-
-- [`MaybeConstructor`](internal_.MaybeConstructor.md)\<`T`\>
-
- ↳ **`Just`**
-
-## Implements
-
-- [`SerializedJust`](../modules/internal_.md#serializedjust)\<`T`\>
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.Just.md#constructor)
-
-### Properties
-
-- [value](internal_.Just.md#value)
-
-### Accessors
-
-- [[toStringTag]](internal_.Just.md#[tostringtag])
-- [name](internal_.Just.md#name)
-- [type](internal_.Just.md#type)
-
-### Methods
-
-- [apply](internal_.Just.md#apply)
-- [asyncApply](internal_.Just.md#asyncapply)
-- [asyncChain](internal_.Just.md#asyncchain)
-- [asyncMap](internal_.Just.md#asyncmap)
-- [await](internal_.Just.md#await)
-- [chain](internal_.Just.md#chain)
-- [default](internal_.Just.md#default)
-- [filter](internal_.Just.md#filter)
-- [flatMap](internal_.Just.md#flatmap)
-- [fold](internal_.Just.md#fold)
-- [isJust](internal_.Just.md#isjust)
-- [isNone](internal_.Just.md#isnone)
-- [join](internal_.Just.md#join)
-- [map](internal_.Just.md#map)
-- [mapNullable](internal_.Just.md#mapnullable)
-- [or](internal_.Just.md#or)
-- [orAsync](internal_.Just.md#orasync)
-- [orLazy](internal_.Just.md#orlazy)
-- [pipe](internal_.Just.md#pipe)
-- [tap](internal_.Just.md#tap)
-- [toJSON](internal_.Just.md#tojson)
-- [unwrap](internal_.Just.md#unwrap)
-- [unwrapOr](internal_.Just.md#unwrapor)
-- [unwrapOrElse](internal_.Just.md#unwraporelse)
-- [zip](internal_.Just.md#zip)
-- [create](internal_.Just.md#create)
-
-## Constructors
-
-### constructor
-
-• `Private` **new Just**\<`T`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Overrides
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[constructor](internal_.MaybeConstructor.md#constructor)
-
-#### Defined in
-
-dist/maybe.d.ts:53
-
-## Properties
-
-### value
-
-• `Readonly` **value**: `T`
-
-#### Implementation of
-
-SerializedJust.value
-
-#### Defined in
-
-dist/maybe.d.ts:48
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): [`Just`](../modules/internal_.md#just)
-
-#### Returns
-
-[`Just`](../modules/internal_.md#just)
-
-#### Defined in
-
-dist/maybe.d.ts:50
-
-___
-
-### name
-
-• `get` **name**(): ``"Maybe"``
-
-#### Returns
-
-``"Maybe"``
-
-#### Implementation of
-
-SerializedJust.name
-
-#### Defined in
-
-dist/maybe.d.ts:51
-
-___
-
-### type
-
-• `get` **type**(): [`Just`](../modules/internal_.md#just)
-
-#### Returns
-
-[`Just`](../modules/internal_.md#just)
-
-#### Implementation of
-
-SerializedJust.type
-
-#### Defined in
-
-dist/maybe.d.ts:52
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[apply](internal_.MaybeConstructor.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:22
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[apply](internal_.MaybeConstructor.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:23
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncApply](internal_.MaybeConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/maybe.d.ts:39
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `map` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncApply](internal_.MaybeConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/maybe.d.ts:40
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncChain](internal_.MaybeConstructor.md#asyncchain)
-
-#### Defined in
-
-dist/maybe.d.ts:36
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncMap](internal_.MaybeConstructor.md#asyncmap)
-
-#### Defined in
-
-dist/maybe.d.ts:37
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[await](internal_.MaybeConstructor.md#await)
-
-#### Defined in
-
-dist/maybe.d.ts:38
-
-___
-
-### chain
-
-▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`Maybe`](../modules/internal_.md#maybe)\<`V`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[chain](internal_.MaybeConstructor.md#chain)
-
-#### Defined in
-
-dist/maybe.d.ts:26
-
-___
-
-### default
-
-▸ **default**(`value`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[default](internal_.MaybeConstructor.md#default)
-
-#### Defined in
-
-dist/maybe.d.ts:27
-
-___
-
-### filter
-
-▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `T`) => input is T |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[filter](internal_.MaybeConstructor.md#filter)
-
-#### Defined in
-
-dist/maybe.d.ts:24
-
-▸ **filter**(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `T`) => `boolean` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[filter](internal_.MaybeConstructor.md#filter)
-
-#### Defined in
-
-dist/maybe.d.ts:25
-
-___
-
-### flatMap
-
-▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`undefined` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[flatMap](internal_.MaybeConstructor.md#flatmap)
-
-#### Defined in
-
-dist/maybe.d.ts:33
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapNone` | [`Mapper`](../modules/internal_.md#mapper)\<`void`, `B`\> |
-| `mapJust` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `A`\> |
-
-#### Returns
-
-`A` \| `B`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[fold](internal_.MaybeConstructor.md#fold)
-
-#### Defined in
-
-dist/maybe.d.ts:35
-
-___
-
-### isJust
-
-▸ **isJust**(): this is Just\
-
-#### Returns
-
-this is Just\
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[isJust](internal_.MaybeConstructor.md#isjust)
-
-#### Defined in
-
-dist/maybe.d.ts:16
-
-___
-
-### isNone
-
-▸ **isNone**(): this is None\
-
-#### Returns
-
-this is None\
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[isNone](internal_.MaybeConstructor.md#isnone)
-
-#### Defined in
-
-dist/maybe.d.ts:17
-
-___
-
-### join
-
-▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `V` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Maybe`](../modules/internal_.md#maybe)\<`V`\>\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[join](internal_.MaybeConstructor.md#join)
-
-#### Defined in
-
-dist/maybe.d.ts:18
-
-___
-
-### map
-
-▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[map](internal_.MaybeConstructor.md#map)
-
-#### Defined in
-
-dist/maybe.d.ts:20
-
-___
-
-### mapNullable
-
-▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `undefined` \| ``null`` \| `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[mapNullable](internal_.MaybeConstructor.md#mapnullable)
-
-#### Defined in
-
-dist/maybe.d.ts:21
-
-___
-
-### or
-
-▸ **or**(`x`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[or](internal_.MaybeConstructor.md#or)
-
-#### Defined in
-
-dist/maybe.d.ts:28
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[orAsync](internal_.MaybeConstructor.md#orasync)
-
-#### Defined in
-
-dist/maybe.d.ts:30
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[orLazy](internal_.MaybeConstructor.md#orlazy)
-
-#### Defined in
-
-dist/maybe.d.ts:29
-
-___
-
-### pipe
-
-▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`V`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[pipe](internal_.MaybeConstructor.md#pipe)
-
-#### Defined in
-
-dist/maybe.d.ts:19
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[tap](internal_.MaybeConstructor.md#tap)
-
-#### Defined in
-
-dist/maybe.d.ts:32
-
-___
-
-### toJSON
-
-▸ **toJSON**(): `Readonly`\<\{ `name`: ``"Maybe"`` ; `type`: [`Just`](../modules/internal_.md#just) ; `value`: `T` }\>
-
-#### Returns
-
-`Readonly`\<\{ `name`: ``"Maybe"`` ; `type`: [`Just`](../modules/internal_.md#just) ; `value`: `T` }\>
-
-#### Defined in
-
-dist/maybe.d.ts:54
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `T`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `message?` | `string` |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrap](internal_.MaybeConstructor.md#unwrap)
-
-#### Defined in
-
-dist/maybe.d.ts:34
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `T` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`T` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrapOr](internal_.MaybeConstructor.md#unwrapor)
-
-#### Defined in
-
-dist/maybe.d.ts:14
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`value`): `T` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | () => `T` |
-
-#### Returns
-
-`T` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrapOrElse](internal_.MaybeConstructor.md#unwraporelse)
-
-#### Defined in
-
-dist/maybe.d.ts:15
-
-___
-
-### zip
-
-▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`T`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `maybe` | [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`T`, `T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[zip](internal_.MaybeConstructor.md#zip)
-
-#### Defined in
-
-dist/maybe.d.ts:31
-
-___
-
-### create
-
-▸ `Static` **create**\<`T`\>(`value`): [`Just`](internal_.Just.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-[`Just`](internal_.Just.md)\<`T`\>
-
-#### Defined in
-
-dist/maybe.d.ts:49
diff --git a/docs/api/classes/internal_.Left.md b/docs/api/classes/internal_.Left.md
deleted file mode 100644
index 07497cc..0000000
--- a/docs/api/classes/internal_.Left.md
+++ /dev/null
@@ -1,1131 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / Left
-
-# Class: Left\
-
-[\](../modules/internal_.md).Left
-
-## Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-## Hierarchy
-
-- [`EitherConstructor`](internal_.EitherConstructor.md)\<`L`, `R`\>
-
- ↳ **`Left`**
-
-## Implements
-
-- [`SerializedLeft`](../modules/internal_.md#serializedleft)\<`L`\>
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.Left.md#constructor)
-
-### Properties
-
-- [left](internal_.Left.md#left)
-
-### Accessors
-
-- [[toStringTag]](internal_.Left.md#[tostringtag])
-- [name](internal_.Left.md#name)
-- [type](internal_.Left.md#type)
-
-### Methods
-
-- [any](internal_.Left.md#any)
-- [apply](internal_.Left.md#apply)
-- [asyncApply](internal_.Left.md#asyncapply)
-- [asyncChain](internal_.Left.md#asyncchain)
-- [asyncMap](internal_.Left.md#asyncmap)
-- [await](internal_.Left.md#await)
-- [biMap](internal_.Left.md#bimap)
-- [chain](internal_.Left.md#chain)
-- [default](internal_.Left.md#default)
-- [fold](internal_.Left.md#fold)
-- [getLeft](internal_.Left.md#getleft)
-- [getRight](internal_.Left.md#getright)
-- [isLeft](internal_.Left.md#isleft)
-- [isRight](internal_.Left.md#isright)
-- [join](internal_.Left.md#join)
-- [map](internal_.Left.md#map)
-- [mapLeft](internal_.Left.md#mapleft)
-- [mapRight](internal_.Left.md#mapright)
-- [or](internal_.Left.md#or)
-- [orAsync](internal_.Left.md#orasync)
-- [orLazy](internal_.Left.md#orlazy)
-- [pipe](internal_.Left.md#pipe)
-- [promise](internal_.Left.md#promise)
-- [swap](internal_.Left.md#swap)
-- [tap](internal_.Left.md#tap)
-- [throw](internal_.Left.md#throw)
-- [toJSON](internal_.Left.md#tojson)
-- [unwrap](internal_.Left.md#unwrap)
-- [unwrapOr](internal_.Left.md#unwrapor)
-- [unwrapOrElse](internal_.Left.md#unwraporelse)
-- [value](internal_.Left.md#value)
-- [zip](internal_.Left.md#zip)
-- [create](internal_.Left.md#create)
-
-## Constructors
-
-### constructor
-
-• `Private` **new Left**\<`L`, `R`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-#### Overrides
-
-[EitherConstructor](internal_.EitherConstructor.md).[constructor](internal_.EitherConstructor.md#constructor)
-
-#### Defined in
-
-dist/either.d.ts:89
-
-## Properties
-
-### left
-
-• `Readonly` **left**: `L`
-
-**`Deprecated`**
-
-Should not be used directly, public only for serialization & type check use [getLeft](internal_.Left.md#getleft)
-
-**`See`**
-
-[getLeft](internal_.Left.md#getleft)
-
-**`Memberof`**
-
-Left
-
-#### Implementation of
-
-SerializedLeft.left
-
-#### Defined in
-
-dist/either.d.ts:83
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): [`Left`](../modules/internal_.md#left)
-
-#### Returns
-
-[`Left`](../modules/internal_.md#left)
-
-#### Defined in
-
-dist/either.d.ts:84
-
-___
-
-### name
-
-• `get` **name**(): ``"Either"``
-
-#### Returns
-
-``"Either"``
-
-#### Implementation of
-
-SerializedLeft.name
-
-#### Defined in
-
-dist/either.d.ts:85
-
-___
-
-### type
-
-• `get` **type**(): [`Left`](../modules/internal_.md#left)
-
-#### Returns
-
-[`Left`](../modules/internal_.md#left)
-
-#### Implementation of
-
-SerializedLeft.type
-
-#### Defined in
-
-dist/either.d.ts:88
-
-## Methods
-
-### any
-
-▸ **any**\<`T`\>(`this`): `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`T`, `T`\> |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[any](internal_.EitherConstructor.md#any)
-
-#### Defined in
-
-dist/either.d.ts:67
-
-___
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[apply](internal_.EitherConstructor.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:20
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[apply](internal_.EitherConstructor.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:21
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncApply](internal_.EitherConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/either.d.ts:22
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncApply](internal_.EitherConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/either.d.ts:23
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`A`, `B`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncChain](internal_.EitherConstructor.md#asyncchain)
-
-#### Defined in
-
-dist/either.d.ts:27
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncMap](internal_.EitherConstructor.md#asyncmap)
-
-#### Defined in
-
-dist/either.d.ts:28
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[await](internal_.EitherConstructor.md#await)
-
-#### Defined in
-
-dist/either.d.ts:29
-
-___
-
-### biMap
-
-▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[biMap](internal_.EitherConstructor.md#bimap)
-
-#### Defined in
-
-dist/either.d.ts:26
-
-___
-
-### chain
-
-▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`Either`](../modules/internal_.md#either)\<`A`, `B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[chain](internal_.EitherConstructor.md#chain)
-
-#### Defined in
-
-dist/either.d.ts:25
-
-___
-
-### default
-
-▸ **default**(`value`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `R` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[default](internal_.EitherConstructor.md#default)
-
-#### Defined in
-
-dist/either.d.ts:38
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-`A` \| `B`
-
-**`Throws`**
-
-- [InvalidStateError](InvalidStateError.md) if Either state is neither Left neither Right, this probably should never happen
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[fold](internal_.EitherConstructor.md#fold)
-
-#### Defined in
-
-dist/either.d.ts:37
-
-___
-
-### getLeft
-
-▸ **getLeft**(): `L`
-
-#### Returns
-
-`L`
-
-#### Defined in
-
-dist/either.d.ts:87
-
-___
-
-### getRight
-
-▸ **getRight**(): `undefined`
-
-#### Returns
-
-`undefined`
-
-#### Defined in
-
-dist/either.d.ts:86
-
-___
-
-### isLeft
-
-▸ **isLeft**(): this is Left\
-
-#### Returns
-
-this is Left\
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[isLeft](internal_.EitherConstructor.md#isleft)
-
-#### Defined in
-
-dist/either.d.ts:12
-
-___
-
-### isRight
-
-▸ **isRight**(): this is Right\
-
-#### Returns
-
-this is Right\
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[isRight](internal_.EitherConstructor.md#isright)
-
-#### Defined in
-
-dist/either.d.ts:13
-
-___
-
-### join
-
-▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L1` |
-| `L2` |
-| `R` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L1`, [`Either`](../modules/internal_.md#either)\<`L2`, `R`\>\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[join](internal_.EitherConstructor.md#join)
-
-#### Defined in
-
-dist/either.d.ts:16
-
-___
-
-### map
-
-▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[map](internal_.EitherConstructor.md#map)
-
-#### Defined in
-
-dist/either.d.ts:18
-
-___
-
-### mapLeft
-
-▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[mapLeft](internal_.EitherConstructor.md#mapleft)
-
-#### Defined in
-
-dist/either.d.ts:17
-
-___
-
-### mapRight
-
-▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[mapRight](internal_.EitherConstructor.md#mapright)
-
-#### Defined in
-
-dist/either.d.ts:19
-
-___
-
-### or
-
-▸ **or**(`x`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[or](internal_.EitherConstructor.md#or)
-
-#### Defined in
-
-dist/either.d.ts:39
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[orAsync](internal_.EitherConstructor.md#orasync)
-
-#### Defined in
-
-dist/either.d.ts:41
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[orLazy](internal_.EitherConstructor.md#orlazy)
-
-#### Defined in
-
-dist/either.d.ts:40
-
-___
-
-### pipe
-
-▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[pipe](internal_.EitherConstructor.md#pipe)
-
-#### Defined in
-
-dist/either.d.ts:11
-
-___
-
-### promise
-
-▸ **promise**(): `Promise`\<`R`\>
-
-#### Returns
-
-`Promise`\<`R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[promise](internal_.EitherConstructor.md#promise)
-
-#### Defined in
-
-dist/either.d.ts:52
-
-___
-
-### swap
-
-▸ **swap**(): [`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[swap](internal_.EitherConstructor.md#swap)
-
-#### Defined in
-
-dist/either.d.ts:24
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[tap](internal_.EitherConstructor.md#tap)
-
-#### Defined in
-
-dist/either.d.ts:10
-
-___
-
-### throw
-
-▸ **throw**(): `R`
-
-#### Returns
-
-`R`
-
-- Right value if current state is Right,
-
-**`Throws`**
-
-- L if current state is Left
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[throw](internal_.EitherConstructor.md#throw)
-
-#### Defined in
-
-dist/either.d.ts:58
-
-___
-
-### toJSON
-
-▸ **toJSON**(): `Readonly`\<\{ `left`: `L` ; `name`: ``"Either"`` ; `type`: [`Left`](../modules/internal_.md#left) }\>
-
-#### Returns
-
-`Readonly`\<\{ `left`: `L` ; `name`: ``"Either"`` ; `type`: [`Left`](../modules/internal_.md#left) }\>
-
-#### Defined in
-
-dist/either.d.ts:90
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `R`
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
-
-#### Returns
-
-`R`
-
-- Right value of Either, if right
-
-**`Deprecated`**
-
-- **If Left value is Error use [throw](internal_.Right.md#throw) instead**
-
-**`Throws`**
-
-- [UnwrapCustomError](UnwrapCustomError.md) is Left with provided message
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrap](internal_.EitherConstructor.md#unwrap)
-
-#### Defined in
-
-dist/either.d.ts:51
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrapOr](internal_.EitherConstructor.md#unwrapor)
-
-#### Defined in
-
-dist/either.d.ts:15
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `fallback` | (`value`: `L`) => `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrapOrElse](internal_.EitherConstructor.md#unwraporelse)
-
-#### Defined in
-
-dist/either.d.ts:14
-
-___
-
-### value
-
-▸ **value**(): `L` \| `R`
-
-Return value of Either independent if it is Right or Left
-
-#### Returns
-
-`L` \| `R`
-
-**`Deprecated`**
-
-- probably should not be used, please refactor code or use [fold](internal_.Right.md#fold)
-
-**`See`**
-
-[fold](internal_.Right.md#fold)
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[value](internal_.EitherConstructor.md#value)
-
-#### Defined in
-
-dist/either.d.ts:66
-
-___
-
-### zip
-
-▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `either` | [`Either`](../modules/internal_.md#either)\<`A`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[zip](internal_.EitherConstructor.md#zip)
-
-#### Defined in
-
-dist/either.d.ts:42
-
-___
-
-### create
-
-▸ `Static` **create**\<`L`, `R`\>(`left`): [`Left`](internal_.Left.md)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `L` | `L` |
-| `R` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `left` | `L` |
-
-#### Returns
-
-[`Left`](internal_.Left.md)\<`L`, `R`\>
-
-#### Defined in
-
-dist/either.d.ts:75
diff --git a/docs/api/classes/internal_.MaybeConstructor.md b/docs/api/classes/internal_.MaybeConstructor.md
deleted file mode 100644
index b1b9f2e..0000000
--- a/docs/api/classes/internal_.MaybeConstructor.md
+++ /dev/null
@@ -1,774 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / MaybeConstructor
-
-# Class: MaybeConstructor\
-
-[\](../modules/internal_.md).MaybeConstructor
-
-## Type parameters
-
-| Name |
-| :------ |
-| `Va` |
-
-## Hierarchy
-
-- **`MaybeConstructor`**
-
- ↳ [`Just`](internal_.Just.md)
-
- ↳ [`None`](internal_.None.md)
-
-## Implements
-
-- [`Monad`](../interfaces/Monad.md)\<`Va`\>
-- [`Alternative`](../interfaces/Alternative.md)\<`Va`\>
-- [`Container`](../interfaces/Container.md)\<`Va`\>
-- [`Pipe`](../interfaces/internal_.Pipe.md)
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.MaybeConstructor.md#constructor)
-
-### Methods
-
-- [apply](internal_.MaybeConstructor.md#apply)
-- [asyncApply](internal_.MaybeConstructor.md#asyncapply)
-- [asyncChain](internal_.MaybeConstructor.md#asyncchain)
-- [asyncMap](internal_.MaybeConstructor.md#asyncmap)
-- [await](internal_.MaybeConstructor.md#await)
-- [chain](internal_.MaybeConstructor.md#chain)
-- [default](internal_.MaybeConstructor.md#default)
-- [filter](internal_.MaybeConstructor.md#filter)
-- [flatMap](internal_.MaybeConstructor.md#flatmap)
-- [fold](internal_.MaybeConstructor.md#fold)
-- [isJust](internal_.MaybeConstructor.md#isjust)
-- [isNone](internal_.MaybeConstructor.md#isnone)
-- [join](internal_.MaybeConstructor.md#join)
-- [map](internal_.MaybeConstructor.md#map)
-- [mapNullable](internal_.MaybeConstructor.md#mapnullable)
-- [or](internal_.MaybeConstructor.md#or)
-- [orAsync](internal_.MaybeConstructor.md#orasync)
-- [orLazy](internal_.MaybeConstructor.md#orlazy)
-- [pipe](internal_.MaybeConstructor.md#pipe)
-- [tap](internal_.MaybeConstructor.md#tap)
-- [unwrap](internal_.MaybeConstructor.md#unwrap)
-- [unwrapOr](internal_.MaybeConstructor.md#unwrapor)
-- [unwrapOrElse](internal_.MaybeConstructor.md#unwraporelse)
-- [zip](internal_.MaybeConstructor.md#zip)
-
-## Constructors
-
-### constructor
-
-• **new MaybeConstructor**\<`Va`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `Va` |
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Implementation of
-
-[Monad](../interfaces/Monad.md).[apply](../interfaces/Monad.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:22
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Implementation of
-
-[Monad](../interfaces/Monad.md).[apply](../interfaces/Monad.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:23
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:39
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `map` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:40
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:36
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:37
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:38
-
-___
-
-### chain
-
-▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, [`Maybe`](../modules/internal_.md#maybe)\<`V`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Implementation of
-
-[Monad](../interfaces/Monad.md).[chain](../interfaces/Monad.md#chain)
-
-#### Defined in
-
-dist/maybe.d.ts:26
-
-___
-
-### default
-
-▸ **default**(`value`): [`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `Va` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Implementation of
-
-[Alternative](../interfaces/Alternative.md).[default](../interfaces/Alternative.md#default)
-
-#### Defined in
-
-dist/maybe.d.ts:27
-
-___
-
-### filter
-
-▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `Va`) => input is T |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Defined in
-
-dist/maybe.d.ts:24
-
-▸ **filter**(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `Va`) => `boolean` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Defined in
-
-dist/maybe.d.ts:25
-
-___
-
-### flatMap
-
-▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`undefined` \| `T`
-
-#### Defined in
-
-dist/maybe.d.ts:33
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapNone` | [`Mapper`](../modules/internal_.md#mapper)\<`void`, `B`\> |
-| `mapJust` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, `A`\> |
-
-#### Returns
-
-`A` \| `B`
-
-#### Defined in
-
-dist/maybe.d.ts:35
-
-___
-
-### isJust
-
-▸ **isJust**(): this is Just\
-
-#### Returns
-
-this is Just\
-
-#### Defined in
-
-dist/maybe.d.ts:16
-
-___
-
-### isNone
-
-▸ **isNone**(): this is None\
-
-#### Returns
-
-this is None\
-
-#### Defined in
-
-dist/maybe.d.ts:17
-
-___
-
-### join
-
-▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `V` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Maybe`](../modules/internal_.md#maybe)\<`V`\>\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Implementation of
-
-[Monad](../interfaces/Monad.md).[join](../interfaces/Monad.md#join)
-
-#### Defined in
-
-dist/maybe.d.ts:18
-
-___
-
-### map
-
-▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Implementation of
-
-[Monad](../interfaces/Monad.md).[map](../interfaces/Monad.md#map)
-
-#### Defined in
-
-dist/maybe.d.ts:20
-
-___
-
-### mapNullable
-
-▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, `undefined` \| ``null`` \| `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Defined in
-
-dist/maybe.d.ts:21
-
-___
-
-### or
-
-▸ **or**(`x`): [`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Maybe`](../modules/internal_.md#maybe)\<`Va`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Implementation of
-
-[Alternative](../interfaces/Alternative.md).[or](../interfaces/Alternative.md#or)
-
-#### Defined in
-
-dist/maybe.d.ts:28
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:30
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Maybe`](../modules/internal_.md#maybe)\<`Va`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Defined in
-
-dist/maybe.d.ts:29
-
-___
-
-### pipe
-
-▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`V`
-
-#### Implementation of
-
-[Pipe](../interfaces/internal_.Pipe.md).[pipe](../interfaces/internal_.Pipe.md#pipe)
-
-#### Defined in
-
-dist/maybe.d.ts:19
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`Va`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`Va`\>
-
-#### Defined in
-
-dist/maybe.d.ts:32
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `Va`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `message?` | `string` |
-
-#### Returns
-
-`Va`
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrap](../interfaces/Container.md#unwrap)
-
-#### Defined in
-
-dist/maybe.d.ts:34
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `Va` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`Va` \| `T`
-
-#### Implementation of
-
-[Container](../interfaces/Container.md).[unwrapOr](../interfaces/Container.md#unwrapor)
-
-#### Defined in
-
-dist/maybe.d.ts:14
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`value`): `Va` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | () => `T` |
-
-#### Returns
-
-`Va` \| `T`
-
-#### Defined in
-
-dist/maybe.d.ts:15
-
-___
-
-### zip
-
-▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`Va`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `maybe` | [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`Va`, `T`\>\>
-
-#### Defined in
-
-dist/maybe.d.ts:31
diff --git a/docs/api/classes/internal_.None.md b/docs/api/classes/internal_.None.md
deleted file mode 100644
index 285289f..0000000
--- a/docs/api/classes/internal_.None.md
+++ /dev/null
@@ -1,966 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / None
-
-# Class: None\
-
-[\](../modules/internal_.md).None
-
-## Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-## Hierarchy
-
-- [`MaybeConstructor`](internal_.MaybeConstructor.md)\<`T`\>
-
- ↳ **`None`**
-
-## Implements
-
-- [`SerializedNone`](../modules/internal_.md#serializednone)
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.None.md#constructor)
-
-### Properties
-
-- [instance](internal_.None.md#instance)
-
-### Accessors
-
-- [[toStringTag]](internal_.None.md#[tostringtag])
-- [name](internal_.None.md#name)
-- [type](internal_.None.md#type)
-- [value](internal_.None.md#value)
-
-### Methods
-
-- [apply](internal_.None.md#apply)
-- [asyncApply](internal_.None.md#asyncapply)
-- [asyncChain](internal_.None.md#asyncchain)
-- [asyncMap](internal_.None.md#asyncmap)
-- [await](internal_.None.md#await)
-- [chain](internal_.None.md#chain)
-- [default](internal_.None.md#default)
-- [filter](internal_.None.md#filter)
-- [flatMap](internal_.None.md#flatmap)
-- [fold](internal_.None.md#fold)
-- [isJust](internal_.None.md#isjust)
-- [isNone](internal_.None.md#isnone)
-- [join](internal_.None.md#join)
-- [map](internal_.None.md#map)
-- [mapNullable](internal_.None.md#mapnullable)
-- [or](internal_.None.md#or)
-- [orAsync](internal_.None.md#orasync)
-- [orLazy](internal_.None.md#orlazy)
-- [pipe](internal_.None.md#pipe)
-- [tap](internal_.None.md#tap)
-- [toJSON](internal_.None.md#tojson)
-- [unwrap](internal_.None.md#unwrap)
-- [unwrapOr](internal_.None.md#unwrapor)
-- [unwrapOrElse](internal_.None.md#unwraporelse)
-- [zip](internal_.None.md#zip)
-- [create](internal_.None.md#create)
-
-## Constructors
-
-### constructor
-
-• `Private` **new None**\<`T`\>()
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `unknown` |
-
-#### Overrides
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[constructor](internal_.MaybeConstructor.md#constructor)
-
-#### Defined in
-
-dist/maybe.d.ts:67
-
-## Properties
-
-### instance
-
-▪ `Static` `Readonly` **instance**: [`None`](internal_.None.md)\<`never`\>
-
-#### Defined in
-
-dist/maybe.d.ts:61
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): [`None`](../modules/internal_.md#none)
-
-#### Returns
-
-[`None`](../modules/internal_.md#none)
-
-#### Defined in
-
-dist/maybe.d.ts:64
-
-___
-
-### name
-
-• `get` **name**(): ``"Maybe"``
-
-#### Returns
-
-``"Maybe"``
-
-#### Implementation of
-
-SerializedNone.name
-
-#### Defined in
-
-dist/maybe.d.ts:65
-
-___
-
-### type
-
-• `get` **type**(): [`None`](../modules/internal_.md#none)
-
-#### Returns
-
-[`None`](../modules/internal_.md#none)
-
-#### Implementation of
-
-SerializedNone.type
-
-#### Defined in
-
-dist/maybe.d.ts:66
-
-___
-
-### value
-
-• `get` **value**(): `undefined`
-
-#### Returns
-
-`undefined`
-
-#### Defined in
-
-dist/maybe.d.ts:63
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[apply](internal_.MaybeConstructor.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:22
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`B`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[apply](internal_.MaybeConstructor.md#apply)
-
-#### Defined in
-
-dist/maybe.d.ts:23
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncApply](internal_.MaybeConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/maybe.d.ts:39
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<`A`\> |
-| `map` | [`Maybe`](../modules/internal_.md#maybe)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`B`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncApply](internal_.MaybeConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/maybe.d.ts:40
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncChain](internal_.MaybeConstructor.md#asyncchain)
-
-#### Defined in
-
-dist/maybe.d.ts:36
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[asyncMap](internal_.MaybeConstructor.md#asyncmap)
-
-#### Defined in
-
-dist/maybe.d.ts:37
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[await](internal_.MaybeConstructor.md#await)
-
-#### Defined in
-
-dist/maybe.d.ts:38
-
-___
-
-### chain
-
-▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, [`Maybe`](../modules/internal_.md#maybe)\<`V`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[chain](internal_.MaybeConstructor.md#chain)
-
-#### Defined in
-
-dist/maybe.d.ts:26
-
-___
-
-### default
-
-▸ **default**(`value`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[default](internal_.MaybeConstructor.md#default)
-
-#### Defined in
-
-dist/maybe.d.ts:27
-
-___
-
-### filter
-
-▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `T`) => input is T |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[filter](internal_.MaybeConstructor.md#filter)
-
-#### Defined in
-
-dist/maybe.d.ts:24
-
-▸ **filter**(`filter`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `filter` | (`input`: `T`) => `boolean` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[filter](internal_.MaybeConstructor.md#filter)
-
-#### Defined in
-
-dist/maybe.d.ts:25
-
-___
-
-### flatMap
-
-▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`undefined` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[flatMap](internal_.MaybeConstructor.md#flatmap)
-
-#### Defined in
-
-dist/maybe.d.ts:33
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapNone` | [`Mapper`](../modules/internal_.md#mapper)\<`void`, `B`\> |
-| `mapJust` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `A`\> |
-
-#### Returns
-
-`A` \| `B`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[fold](internal_.MaybeConstructor.md#fold)
-
-#### Defined in
-
-dist/maybe.d.ts:35
-
-___
-
-### isJust
-
-▸ **isJust**(): this is Just\
-
-#### Returns
-
-this is Just\
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[isJust](internal_.MaybeConstructor.md#isjust)
-
-#### Defined in
-
-dist/maybe.d.ts:16
-
-___
-
-### isNone
-
-▸ **isNone**(): this is None\
-
-#### Returns
-
-this is None\
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[isNone](internal_.MaybeConstructor.md#isnone)
-
-#### Defined in
-
-dist/maybe.d.ts:17
-
-___
-
-### join
-
-▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `V` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Maybe`](../modules/internal_.md#maybe)\<[`Maybe`](../modules/internal_.md#maybe)\<`V`\>\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[join](internal_.MaybeConstructor.md#join)
-
-#### Defined in
-
-dist/maybe.d.ts:18
-
-___
-
-### map
-
-▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[map](internal_.MaybeConstructor.md#map)
-
-#### Defined in
-
-dist/maybe.d.ts:20
-
-___
-
-### mapNullable
-
-▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `undefined` \| ``null`` \| `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`V`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[mapNullable](internal_.MaybeConstructor.md#mapnullable)
-
-#### Defined in
-
-dist/maybe.d.ts:21
-
-___
-
-### or
-
-▸ **or**(`x`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[or](internal_.MaybeConstructor.md#or)
-
-#### Defined in
-
-dist/maybe.d.ts:28
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[orAsync](internal_.MaybeConstructor.md#orasync)
-
-#### Defined in
-
-dist/maybe.d.ts:30
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[orLazy](internal_.MaybeConstructor.md#orlazy)
-
-#### Defined in
-
-dist/maybe.d.ts:29
-
-___
-
-### pipe
-
-▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `V` | `V` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Maybe`](../modules/internal_.md#maybe)\<`T`\>, `V`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`V`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[pipe](internal_.MaybeConstructor.md#pipe)
-
-#### Defined in
-
-dist/maybe.d.ts:19
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`T`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<`T`\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[tap](internal_.MaybeConstructor.md#tap)
-
-#### Defined in
-
-dist/maybe.d.ts:32
-
-___
-
-### toJSON
-
-▸ **toJSON**(): [`SerializedNone`](../modules/internal_.md#serializednone)
-
-#### Returns
-
-[`SerializedNone`](../modules/internal_.md#serializednone)
-
-#### Defined in
-
-dist/maybe.d.ts:68
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `T`
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `message?` | `string` |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrap](internal_.MaybeConstructor.md#unwrap)
-
-#### Defined in
-
-dist/maybe.d.ts:34
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `T` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`T` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrapOr](internal_.MaybeConstructor.md#unwrapor)
-
-#### Defined in
-
-dist/maybe.d.ts:14
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`value`): `T` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | () => `T` |
-
-#### Returns
-
-`T` \| `T`
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[unwrapOrElse](internal_.MaybeConstructor.md#unwraporelse)
-
-#### Defined in
-
-dist/maybe.d.ts:15
-
-___
-
-### zip
-
-▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`T`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `maybe` | [`Maybe`](../modules/internal_.md#maybe)\<`T`\> |
-
-#### Returns
-
-[`Maybe`](../modules/internal_.md#maybe)\<[`Pair`](../modules.md#pair)\<`T`, `T`\>\>
-
-#### Inherited from
-
-[MaybeConstructor](internal_.MaybeConstructor.md).[zip](internal_.MaybeConstructor.md#zip)
-
-#### Defined in
-
-dist/maybe.d.ts:31
-
-___
-
-### create
-
-▸ `Static` **create**\<`T`\>(): [`None`](internal_.None.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Returns
-
-[`None`](internal_.None.md)\<`T`\>
-
-#### Defined in
-
-dist/maybe.d.ts:62
diff --git a/docs/api/classes/internal_.Right.md b/docs/api/classes/internal_.Right.md
deleted file mode 100644
index 94e89a3..0000000
--- a/docs/api/classes/internal_.Right.md
+++ /dev/null
@@ -1,1131 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / Right
-
-# Class: Right\
-
-[\](../modules/internal_.md).Right
-
-## Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-## Hierarchy
-
-- [`EitherConstructor`](internal_.EitherConstructor.md)\<`L`, `R`\>
-
- ↳ **`Right`**
-
-## Implements
-
-- [`SerializedRight`](../modules/internal_.md#serializedright)\<`R`\>
-
-## Table of contents
-
-### Constructors
-
-- [constructor](internal_.Right.md#constructor)
-
-### Properties
-
-- [right](internal_.Right.md#right)
-
-### Accessors
-
-- [[toStringTag]](internal_.Right.md#[tostringtag])
-- [name](internal_.Right.md#name)
-- [type](internal_.Right.md#type)
-
-### Methods
-
-- [any](internal_.Right.md#any)
-- [apply](internal_.Right.md#apply)
-- [asyncApply](internal_.Right.md#asyncapply)
-- [asyncChain](internal_.Right.md#asyncchain)
-- [asyncMap](internal_.Right.md#asyncmap)
-- [await](internal_.Right.md#await)
-- [biMap](internal_.Right.md#bimap)
-- [chain](internal_.Right.md#chain)
-- [default](internal_.Right.md#default)
-- [fold](internal_.Right.md#fold)
-- [getLeft](internal_.Right.md#getleft)
-- [getRight](internal_.Right.md#getright)
-- [isLeft](internal_.Right.md#isleft)
-- [isRight](internal_.Right.md#isright)
-- [join](internal_.Right.md#join)
-- [map](internal_.Right.md#map)
-- [mapLeft](internal_.Right.md#mapleft)
-- [mapRight](internal_.Right.md#mapright)
-- [or](internal_.Right.md#or)
-- [orAsync](internal_.Right.md#orasync)
-- [orLazy](internal_.Right.md#orlazy)
-- [pipe](internal_.Right.md#pipe)
-- [promise](internal_.Right.md#promise)
-- [swap](internal_.Right.md#swap)
-- [tap](internal_.Right.md#tap)
-- [throw](internal_.Right.md#throw)
-- [toJSON](internal_.Right.md#tojson)
-- [unwrap](internal_.Right.md#unwrap)
-- [unwrapOr](internal_.Right.md#unwrapor)
-- [unwrapOrElse](internal_.Right.md#unwraporelse)
-- [value](internal_.Right.md#value)
-- [zip](internal_.Right.md#zip)
-- [create](internal_.Right.md#create)
-
-## Constructors
-
-### constructor
-
-• `Private` **new Right**\<`L`, `R`\>()
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-#### Overrides
-
-[EitherConstructor](internal_.EitherConstructor.md).[constructor](internal_.EitherConstructor.md#constructor)
-
-#### Defined in
-
-dist/either.d.ts:112
-
-## Properties
-
-### right
-
-• `Readonly` **right**: `R`
-
-**`Deprecated`**
-
-Should not be used directly, public only for serialization & type check use [getRight](internal_.Right.md#getright)
-
-**`See`**
-
-[getRight](internal_.Right.md#getright)
-
-**`Memberof`**
-
-Right
-
-#### Implementation of
-
-SerializedRight.right
-
-#### Defined in
-
-dist/either.d.ts:106
-
-## Accessors
-
-### [toStringTag]
-
-• `get` **[toStringTag]**(): [`Right`](../modules/internal_.md#right)
-
-#### Returns
-
-[`Right`](../modules/internal_.md#right)
-
-#### Defined in
-
-dist/either.d.ts:107
-
-___
-
-### name
-
-• `get` **name**(): ``"Either"``
-
-#### Returns
-
-``"Either"``
-
-#### Implementation of
-
-SerializedRight.name
-
-#### Defined in
-
-dist/either.d.ts:108
-
-___
-
-### type
-
-• `get` **type**(): [`Right`](../modules/internal_.md#right)
-
-#### Returns
-
-[`Right`](../modules/internal_.md#right)
-
-#### Implementation of
-
-SerializedRight.type
-
-#### Defined in
-
-dist/either.d.ts:109
-
-## Methods
-
-### any
-
-▸ **any**\<`T`\>(`this`): `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`T`, `T`\> |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[any](internal_.EitherConstructor.md#any)
-
-#### Defined in
-
-dist/either.d.ts:67
-
-___
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[apply](internal_.EitherConstructor.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:20
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[apply](internal_.EitherConstructor.md#apply)
-
-#### Defined in
-
-dist/either.d.ts:21
-
-___
-
-### asyncApply
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `argument` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncApply](internal_.EitherConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/either.d.ts:22
-
-▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, `A`\> |
-| `map` | [`Either`](../modules/internal_.md#either)\<`L`, [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncApply](internal_.EitherConstructor.md#asyncapply)
-
-#### Defined in
-
-dist/either.d.ts:23
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`A`, `B`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncChain](internal_.EitherConstructor.md#asyncchain)
-
-#### Defined in
-
-dist/either.d.ts:27
-
-___
-
-### asyncMap
-
-▸ **asyncMap**\<`A`, `B`, `P`\>(`map`, `...parameters`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[asyncMap](internal_.EitherConstructor.md#asyncmap)
-
-#### Defined in
-
-dist/either.d.ts:28
-
-___
-
-### await
-
-▸ **await**\<`T`\>(`this`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<`T`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `T`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[await](internal_.EitherConstructor.md#await)
-
-#### Defined in
-
-dist/either.d.ts:29
-
-___
-
-### biMap
-
-▸ **biMap**\<`A`, `B`\>(`mapLeft`, `mapRight`): [`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`A`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[biMap](internal_.EitherConstructor.md#bimap)
-
-#### Defined in
-
-dist/either.d.ts:26
-
-___
-
-### chain
-
-▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, [`Either`](../modules/internal_.md#either)\<`A`, `B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, `B`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[chain](internal_.EitherConstructor.md#chain)
-
-#### Defined in
-
-dist/either.d.ts:25
-
-___
-
-### default
-
-▸ **default**(`value`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `R` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[default](internal_.EitherConstructor.md#default)
-
-#### Defined in
-
-dist/either.d.ts:38
-
-___
-
-### fold
-
-▸ **fold**\<`A`, `B`\>(`mapLeft`, `mapRight`): `A` \| `B`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `mapLeft` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `A`\> |
-| `mapRight` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `B`\> |
-
-#### Returns
-
-`A` \| `B`
-
-**`Throws`**
-
-- [InvalidStateError](InvalidStateError.md) if Either state is neither Left neither Right, this probably should never happen
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[fold](internal_.EitherConstructor.md#fold)
-
-#### Defined in
-
-dist/either.d.ts:37
-
-___
-
-### getLeft
-
-▸ **getLeft**(): `undefined`
-
-#### Returns
-
-`undefined`
-
-#### Defined in
-
-dist/either.d.ts:111
-
-___
-
-### getRight
-
-▸ **getRight**(): `R`
-
-#### Returns
-
-`R`
-
-#### Defined in
-
-dist/either.d.ts:110
-
-___
-
-### isLeft
-
-▸ **isLeft**(): this is Left\
-
-#### Returns
-
-this is Left\
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[isLeft](internal_.EitherConstructor.md#isleft)
-
-#### Defined in
-
-dist/either.d.ts:12
-
-___
-
-### isRight
-
-▸ **isRight**(): this is Right\
-
-#### Returns
-
-this is Right\
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[isRight](internal_.EitherConstructor.md#isright)
-
-#### Defined in
-
-dist/either.d.ts:13
-
-___
-
-### join
-
-▸ **join**\<`L1`, `L2`, `R`\>(`this`): [`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L1` |
-| `L2` |
-| `R` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Either`](../modules/internal_.md#either)\<`L1`, [`Either`](../modules/internal_.md#either)\<`L2`, `R`\>\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L1` \| `L2`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[join](internal_.EitherConstructor.md#join)
-
-#### Defined in
-
-dist/either.d.ts:16
-
-___
-
-### map
-
-▸ **map**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[map](internal_.EitherConstructor.md#map)
-
-#### Defined in
-
-dist/either.d.ts:18
-
-___
-
-### mapLeft
-
-▸ **mapLeft**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`L`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`T`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[mapLeft](internal_.EitherConstructor.md#mapleft)
-
-#### Defined in
-
-dist/either.d.ts:17
-
-___
-
-### mapRight
-
-▸ **mapRight**\<`T`, `P`\>(`map`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `T`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[mapRight](internal_.EitherConstructor.md#mapright)
-
-#### Defined in
-
-dist/either.d.ts:19
-
-___
-
-### or
-
-▸ **or**(`x`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `x` | [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[or](internal_.EitherConstructor.md#or)
-
-#### Defined in
-
-dist/either.d.ts:39
-
-___
-
-### orAsync
-
-▸ **orAsync**(`factory`): `Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\> |
-
-#### Returns
-
-`Promise`\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[orAsync](internal_.EitherConstructor.md#orasync)
-
-#### Defined in
-
-dist/either.d.ts:41
-
-___
-
-### orLazy
-
-▸ **orLazy**(`factory`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `factory` | () => [`Either`](../modules/internal_.md#either)\<`L`, `R`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[orLazy](internal_.EitherConstructor.md#orlazy)
-
-#### Defined in
-
-dist/either.d.ts:40
-
-___
-
-### pipe
-
-▸ **pipe**\<`T`, `P`\>(`pipe`, `...parameters`): `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `pipe` | [`Mapper`](../modules/internal_.md#mapper)\<[`Either`](../modules/internal_.md#either)\<`L`, `R`\>, `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[pipe](internal_.EitherConstructor.md#pipe)
-
-#### Defined in
-
-dist/either.d.ts:11
-
-___
-
-### promise
-
-▸ **promise**(): `Promise`\<`R`\>
-
-#### Returns
-
-`Promise`\<`R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[promise](internal_.EitherConstructor.md#promise)
-
-#### Defined in
-
-dist/either.d.ts:52
-
-___
-
-### swap
-
-▸ **swap**(): [`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`R`, `L`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[swap](internal_.EitherConstructor.md#swap)
-
-#### Defined in
-
-dist/either.d.ts:24
-
-___
-
-### tap
-
-▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<`R`, `void`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L`, `R`\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[tap](internal_.EitherConstructor.md#tap)
-
-#### Defined in
-
-dist/either.d.ts:10
-
-___
-
-### throw
-
-▸ **throw**(): `R`
-
-#### Returns
-
-`R`
-
-- Right value if current state is Right,
-
-**`Throws`**
-
-- L if current state is Left
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[throw](internal_.EitherConstructor.md#throw)
-
-#### Defined in
-
-dist/either.d.ts:58
-
-___
-
-### toJSON
-
-▸ **toJSON**(): `Readonly`\<\{ `name`: ``"Either"`` ; `right`: `R` ; `type`: [`Right`](../modules/internal_.md#right) }\>
-
-#### Returns
-
-`Readonly`\<\{ `name`: ``"Either"`` ; `right`: `R` ; `type`: [`Right`](../modules/internal_.md#right) }\>
-
-#### Defined in
-
-dist/either.d.ts:113
-
-___
-
-### unwrap
-
-▸ **unwrap**(`message?`): `R`
-
-#### Parameters
-
-| Name | Type | Description |
-| :------ | :------ | :------ |
-| `message?` | `string` | Error message, if either is left. By default "Either state is Left" |
-
-#### Returns
-
-`R`
-
-- Right value of Either, if right
-
-**`Deprecated`**
-
-- **If Left value is Error use [throw](internal_.Right.md#throw) instead**
-
-**`Throws`**
-
-- [UnwrapCustomError](UnwrapCustomError.md) is Left with provided message
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrap](internal_.EitherConstructor.md#unwrap)
-
-#### Defined in
-
-dist/either.d.ts:51
-
-___
-
-### unwrapOr
-
-▸ **unwrapOr**\<`T`\>(`value`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrapOr](internal_.EitherConstructor.md#unwrapor)
-
-#### Defined in
-
-dist/either.d.ts:15
-
-___
-
-### unwrapOrElse
-
-▸ **unwrapOrElse**\<`T`\>(`fallback`): `R` \| `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `fallback` | (`value`: `L`) => `T` |
-
-#### Returns
-
-`R` \| `T`
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[unwrapOrElse](internal_.EitherConstructor.md#unwraporelse)
-
-#### Defined in
-
-dist/either.d.ts:14
-
-___
-
-### value
-
-▸ **value**(): `L` \| `R`
-
-Return value of Either independent if it is Right or Left
-
-#### Returns
-
-`L` \| `R`
-
-**`Deprecated`**
-
-- probably should not be used, please refactor code or use [fold](internal_.Right.md#fold)
-
-**`See`**
-
-[fold](internal_.Right.md#fold)
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[value](internal_.EitherConstructor.md#value)
-
-#### Defined in
-
-dist/either.d.ts:66
-
-___
-
-### zip
-
-▸ **zip**\<`A`, `B`\>(`either`): [`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `either` | [`Either`](../modules/internal_.md#either)\<`A`, `B`\> |
-
-#### Returns
-
-[`Either`](../modules/internal_.md#either)\<`L` \| `A`, [`Pair`](../modules.md#pair)\<`R`, `B`\>\>
-
-#### Inherited from
-
-[EitherConstructor](internal_.EitherConstructor.md).[zip](internal_.EitherConstructor.md#zip)
-
-#### Defined in
-
-dist/either.d.ts:42
-
-___
-
-### create
-
-▸ `Static` **create**\<`R`, `L`\>(`right`): [`Right`](internal_.Right.md)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `R` | `R` |
-| `L` | `unknown` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `right` | `R` |
-
-#### Returns
-
-[`Right`](internal_.Right.md)\<`L`, `R`\>
-
-#### Defined in
-
-dist/either.d.ts:98
diff --git a/docs/api/classes/maybe._internal_.Just.md b/docs/api/classes/maybe._internal_.Just.md
new file mode 100644
index 0000000..51d83fc
--- /dev/null
+++ b/docs/api/classes/maybe._internal_.Just.md
@@ -0,0 +1,961 @@
+[Package](../README.md) / [Modules](../modules.md) / [maybe](../modules/maybe.md) / [\](../modules/maybe._internal_.md) / Just
+
+# Class: Just\
+
+[maybe](../modules/maybe.md).[\](../modules/maybe._internal_.md).Just
+
+## Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+## Hierarchy
+
+- [`MaybeConstructor`](maybe._internal_.MaybeConstructor.md)\<`T`\>
+
+ ↳ **`Just`**
+
+## Implements
+
+- [`SerializedJust`](../modules/maybe._internal_.md#serializedjust)\<`T`\>
+
+## Table of contents
+
+### Constructors
+
+- [constructor](maybe._internal_.Just.md#constructor)
+
+### Properties
+
+- [value](maybe._internal_.Just.md#value)
+
+### Accessors
+
+- [[toStringTag]](maybe._internal_.Just.md#[tostringtag])
+- [name](maybe._internal_.Just.md#name)
+- [type](maybe._internal_.Just.md#type)
+
+### Methods
+
+- [apply](maybe._internal_.Just.md#apply)
+- [asyncApply](maybe._internal_.Just.md#asyncapply)
+- [asyncChain](maybe._internal_.Just.md#asyncchain)
+- [asyncMap](maybe._internal_.Just.md#asyncmap)
+- [await](maybe._internal_.Just.md#await)
+- [chain](maybe._internal_.Just.md#chain)
+- [default](maybe._internal_.Just.md#default)
+- [filter](maybe._internal_.Just.md#filter)
+- [flatMap](maybe._internal_.Just.md#flatmap)
+- [fold](maybe._internal_.Just.md#fold)
+- [isJust](maybe._internal_.Just.md#isjust)
+- [isNone](maybe._internal_.Just.md#isnone)
+- [join](maybe._internal_.Just.md#join)
+- [map](maybe._internal_.Just.md#map)
+- [mapNullable](maybe._internal_.Just.md#mapnullable)
+- [or](maybe._internal_.Just.md#or)
+- [orAsync](maybe._internal_.Just.md#orasync)
+- [orLazy](maybe._internal_.Just.md#orlazy)
+- [pipe](maybe._internal_.Just.md#pipe)
+- [tap](maybe._internal_.Just.md#tap)
+- [toJSON](maybe._internal_.Just.md#tojson)
+- [unwrap](maybe._internal_.Just.md#unwrap)
+- [unwrapOr](maybe._internal_.Just.md#unwrapor)
+- [unwrapOrElse](maybe._internal_.Just.md#unwraporelse)
+- [zip](maybe._internal_.Just.md#zip)
+- [create](maybe._internal_.Just.md#create)
+
+## Constructors
+
+### constructor
+
+• `Private` **new Just**\<`T`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Overrides
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[constructor](maybe._internal_.MaybeConstructor.md#constructor)
+
+#### Defined in
+
+dist/maybe.d.ts:53
+
+## Properties
+
+### value
+
+• `Readonly` **value**: `T`
+
+#### Implementation of
+
+SerializedJust.value
+
+#### Defined in
+
+dist/maybe.d.ts:48
+
+## Accessors
+
+### [toStringTag]
+
+• `get` **[toStringTag]**(): [`Just`](../enums/maybe.MaybeState.md#just)
+
+#### Returns
+
+[`Just`](../enums/maybe.MaybeState.md#just)
+
+#### Defined in
+
+dist/maybe.d.ts:50
+
+___
+
+### name
+
+• `get` **name**(): ``"Maybe"``
+
+#### Returns
+
+``"Maybe"``
+
+#### Implementation of
+
+SerializedJust.name
+
+#### Defined in
+
+dist/maybe.d.ts:51
+
+___
+
+### type
+
+• `get` **type**(): [`Just`](../enums/maybe.MaybeState.md#just)
+
+#### Returns
+
+[`Just`](../enums/maybe.MaybeState.md#just)
+
+#### Implementation of
+
+SerializedJust.type
+
+#### Defined in
+
+dist/maybe.d.ts:52
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[apply](maybe._internal_.MaybeConstructor.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:22
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[apply](maybe._internal_.MaybeConstructor.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:23
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncApply](maybe._internal_.MaybeConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/maybe.d.ts:39
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `map` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncApply](maybe._internal_.MaybeConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/maybe.d.ts:40
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncChain](maybe._internal_.MaybeConstructor.md#asyncchain)
+
+#### Defined in
+
+dist/maybe.d.ts:36
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncMap](maybe._internal_.MaybeConstructor.md#asyncmap)
+
+#### Defined in
+
+dist/maybe.d.ts:37
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[await](maybe._internal_.MaybeConstructor.md#await)
+
+#### Defined in
+
+dist/maybe.d.ts:38
+
+___
+
+### chain
+
+▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`Maybe`](../modules/maybe.md#maybe)\<`V`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[chain](maybe._internal_.MaybeConstructor.md#chain)
+
+#### Defined in
+
+dist/maybe.d.ts:26
+
+___
+
+### default
+
+▸ **default**(`value`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[default](maybe._internal_.MaybeConstructor.md#default)
+
+#### Defined in
+
+dist/maybe.d.ts:27
+
+___
+
+### filter
+
+▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `T`) => input is T |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[filter](maybe._internal_.MaybeConstructor.md#filter)
+
+#### Defined in
+
+dist/maybe.d.ts:24
+
+▸ **filter**(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `T`) => `boolean` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[filter](maybe._internal_.MaybeConstructor.md#filter)
+
+#### Defined in
+
+dist/maybe.d.ts:25
+
+___
+
+### flatMap
+
+▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`undefined` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[flatMap](maybe._internal_.MaybeConstructor.md#flatmap)
+
+#### Defined in
+
+dist/maybe.d.ts:33
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapNone` | [`Mapper`](../modules/types.md#mapper)\<`void`, `B`\> |
+| `mapJust` | [`Mapper`](../modules/types.md#mapper)\<`T`, `A`\> |
+
+#### Returns
+
+`A` \| `B`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[fold](maybe._internal_.MaybeConstructor.md#fold)
+
+#### Defined in
+
+dist/maybe.d.ts:35
+
+___
+
+### isJust
+
+▸ **isJust**(): this is Just\
+
+#### Returns
+
+this is Just\
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[isJust](maybe._internal_.MaybeConstructor.md#isjust)
+
+#### Defined in
+
+dist/maybe.d.ts:16
+
+___
+
+### isNone
+
+▸ **isNone**(): this is None\
+
+#### Returns
+
+this is None\
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[isNone](maybe._internal_.MaybeConstructor.md#isnone)
+
+#### Defined in
+
+dist/maybe.d.ts:17
+
+___
+
+### join
+
+▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Maybe`](../modules/maybe.md#maybe)\<`V`\>\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[join](maybe._internal_.MaybeConstructor.md#join)
+
+#### Defined in
+
+dist/maybe.d.ts:18
+
+___
+
+### map
+
+▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[map](maybe._internal_.MaybeConstructor.md#map)
+
+#### Defined in
+
+dist/maybe.d.ts:20
+
+___
+
+### mapNullable
+
+▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `undefined` \| ``null`` \| `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[mapNullable](maybe._internal_.MaybeConstructor.md#mapnullable)
+
+#### Defined in
+
+dist/maybe.d.ts:21
+
+___
+
+### or
+
+▸ **or**(`x`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[or](maybe._internal_.MaybeConstructor.md#or)
+
+#### Defined in
+
+dist/maybe.d.ts:28
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[orAsync](maybe._internal_.MaybeConstructor.md#orasync)
+
+#### Defined in
+
+dist/maybe.d.ts:30
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[orLazy](maybe._internal_.MaybeConstructor.md#orlazy)
+
+#### Defined in
+
+dist/maybe.d.ts:29
+
+___
+
+### pipe
+
+▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`V`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[pipe](maybe._internal_.MaybeConstructor.md#pipe)
+
+#### Defined in
+
+dist/maybe.d.ts:19
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`T`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[tap](maybe._internal_.MaybeConstructor.md#tap)
+
+#### Defined in
+
+dist/maybe.d.ts:32
+
+___
+
+### toJSON
+
+▸ **toJSON**(): `Readonly`\<\{ `name`: ``"Maybe"`` ; `type`: [`Just`](../enums/maybe.MaybeState.md#just) ; `value`: `T` }\>
+
+#### Returns
+
+`Readonly`\<\{ `name`: ``"Maybe"`` ; `type`: [`Just`](../enums/maybe.MaybeState.md#just) ; `value`: `T` }\>
+
+#### Defined in
+
+dist/maybe.d.ts:54
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `T`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `message?` | `string` |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrap](maybe._internal_.MaybeConstructor.md#unwrap)
+
+#### Defined in
+
+dist/maybe.d.ts:34
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `T` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`T` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrapOr](maybe._internal_.MaybeConstructor.md#unwrapor)
+
+#### Defined in
+
+dist/maybe.d.ts:14
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`value`): `T` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | () => `T` |
+
+#### Returns
+
+`T` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrapOrElse](maybe._internal_.MaybeConstructor.md#unwraporelse)
+
+#### Defined in
+
+dist/maybe.d.ts:15
+
+___
+
+### zip
+
+▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`T`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `maybe` | [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`T`, `T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[zip](maybe._internal_.MaybeConstructor.md#zip)
+
+#### Defined in
+
+dist/maybe.d.ts:31
+
+___
+
+### create
+
+▸ `Static` **create**\<`T`\>(`value`): [`Just`](maybe._internal_.Just.md)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Just`](maybe._internal_.Just.md)\<`T`\>
+
+#### Defined in
+
+dist/maybe.d.ts:49
diff --git a/docs/api/classes/maybe._internal_.MaybeConstructor.md b/docs/api/classes/maybe._internal_.MaybeConstructor.md
new file mode 100644
index 0000000..b42aa59
--- /dev/null
+++ b/docs/api/classes/maybe._internal_.MaybeConstructor.md
@@ -0,0 +1,774 @@
+[Package](../README.md) / [Modules](../modules.md) / [maybe](../modules/maybe.md) / [\](../modules/maybe._internal_.md) / MaybeConstructor
+
+# Class: MaybeConstructor\
+
+[maybe](../modules/maybe.md).[\](../modules/maybe._internal_.md).MaybeConstructor
+
+## Type parameters
+
+| Name |
+| :------ |
+| `Va` |
+
+## Hierarchy
+
+- **`MaybeConstructor`**
+
+ ↳ [`Just`](maybe._internal_.Just.md)
+
+ ↳ [`None`](maybe._internal_.None.md)
+
+## Implements
+
+- [`Monad`](../interfaces/index.Monad.md)\<`Va`\>
+- [`Alternative`](../interfaces/index.Alternative.md)\<`Va`\>
+- [`Container`](../interfaces/index.Container.md)\<`Va`\>
+- [`Pipe`](../interfaces/types.Pipe.md)
+
+## Table of contents
+
+### Constructors
+
+- [constructor](maybe._internal_.MaybeConstructor.md#constructor)
+
+### Methods
+
+- [apply](maybe._internal_.MaybeConstructor.md#apply)
+- [asyncApply](maybe._internal_.MaybeConstructor.md#asyncapply)
+- [asyncChain](maybe._internal_.MaybeConstructor.md#asyncchain)
+- [asyncMap](maybe._internal_.MaybeConstructor.md#asyncmap)
+- [await](maybe._internal_.MaybeConstructor.md#await)
+- [chain](maybe._internal_.MaybeConstructor.md#chain)
+- [default](maybe._internal_.MaybeConstructor.md#default)
+- [filter](maybe._internal_.MaybeConstructor.md#filter)
+- [flatMap](maybe._internal_.MaybeConstructor.md#flatmap)
+- [fold](maybe._internal_.MaybeConstructor.md#fold)
+- [isJust](maybe._internal_.MaybeConstructor.md#isjust)
+- [isNone](maybe._internal_.MaybeConstructor.md#isnone)
+- [join](maybe._internal_.MaybeConstructor.md#join)
+- [map](maybe._internal_.MaybeConstructor.md#map)
+- [mapNullable](maybe._internal_.MaybeConstructor.md#mapnullable)
+- [or](maybe._internal_.MaybeConstructor.md#or)
+- [orAsync](maybe._internal_.MaybeConstructor.md#orasync)
+- [orLazy](maybe._internal_.MaybeConstructor.md#orlazy)
+- [pipe](maybe._internal_.MaybeConstructor.md#pipe)
+- [tap](maybe._internal_.MaybeConstructor.md#tap)
+- [unwrap](maybe._internal_.MaybeConstructor.md#unwrap)
+- [unwrapOr](maybe._internal_.MaybeConstructor.md#unwrapor)
+- [unwrapOrElse](maybe._internal_.MaybeConstructor.md#unwraporelse)
+- [zip](maybe._internal_.MaybeConstructor.md#zip)
+
+## Constructors
+
+### constructor
+
+• **new MaybeConstructor**\<`Va`\>()
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `Va` |
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Implementation of
+
+[Monad](../interfaces/index.Monad.md).[apply](../interfaces/index.Monad.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:22
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Implementation of
+
+[Monad](../interfaces/index.Monad.md).[apply](../interfaces/index.Monad.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:23
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:39
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `map` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:40
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:36
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:37
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:38
+
+___
+
+### chain
+
+▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, [`Maybe`](../modules/maybe.md#maybe)\<`V`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Implementation of
+
+[Monad](../interfaces/index.Monad.md).[chain](../interfaces/index.Monad.md#chain)
+
+#### Defined in
+
+dist/maybe.d.ts:26
+
+___
+
+### default
+
+▸ **default**(`value`): [`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `Va` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Implementation of
+
+[Alternative](../interfaces/index.Alternative.md).[default](../interfaces/index.Alternative.md#default)
+
+#### Defined in
+
+dist/maybe.d.ts:27
+
+___
+
+### filter
+
+▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `Va`) => input is T |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Defined in
+
+dist/maybe.d.ts:24
+
+▸ **filter**(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `Va`) => `boolean` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Defined in
+
+dist/maybe.d.ts:25
+
+___
+
+### flatMap
+
+▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`undefined` \| `T`
+
+#### Defined in
+
+dist/maybe.d.ts:33
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapNone` | [`Mapper`](../modules/types.md#mapper)\<`void`, `B`\> |
+| `mapJust` | [`Mapper`](../modules/types.md#mapper)\<`Va`, `A`\> |
+
+#### Returns
+
+`A` \| `B`
+
+#### Defined in
+
+dist/maybe.d.ts:35
+
+___
+
+### isJust
+
+▸ **isJust**(): this is Just\
+
+#### Returns
+
+this is Just\
+
+#### Defined in
+
+dist/maybe.d.ts:16
+
+___
+
+### isNone
+
+▸ **isNone**(): this is None\
+
+#### Returns
+
+this is None\
+
+#### Defined in
+
+dist/maybe.d.ts:17
+
+___
+
+### join
+
+▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Maybe`](../modules/maybe.md#maybe)\<`V`\>\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Implementation of
+
+[Monad](../interfaces/index.Monad.md).[join](../interfaces/index.Monad.md#join)
+
+#### Defined in
+
+dist/maybe.d.ts:18
+
+___
+
+### map
+
+▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Implementation of
+
+[Monad](../interfaces/index.Monad.md).[map](../interfaces/index.Monad.md#map)
+
+#### Defined in
+
+dist/maybe.d.ts:20
+
+___
+
+### mapNullable
+
+▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`Va`, `undefined` \| ``null`` \| `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Defined in
+
+dist/maybe.d.ts:21
+
+___
+
+### or
+
+▸ **or**(`x`): [`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Maybe`](../modules/maybe.md#maybe)\<`Va`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Implementation of
+
+[Alternative](../interfaces/index.Alternative.md).[or](../interfaces/index.Alternative.md#or)
+
+#### Defined in
+
+dist/maybe.d.ts:28
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:30
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Maybe`](../modules/maybe.md#maybe)\<`Va`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Defined in
+
+dist/maybe.d.ts:29
+
+___
+
+### pipe
+
+▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`V`
+
+#### Implementation of
+
+[Pipe](../interfaces/types.Pipe.md).[pipe](../interfaces/types.Pipe.md#pipe)
+
+#### Defined in
+
+dist/maybe.d.ts:19
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`Va`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`Va`\>
+
+#### Defined in
+
+dist/maybe.d.ts:32
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `Va`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `message?` | `string` |
+
+#### Returns
+
+`Va`
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrap](../interfaces/index.Container.md#unwrap)
+
+#### Defined in
+
+dist/maybe.d.ts:34
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `Va` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`Va` \| `T`
+
+#### Implementation of
+
+[Container](../interfaces/index.Container.md).[unwrapOr](../interfaces/index.Container.md#unwrapor)
+
+#### Defined in
+
+dist/maybe.d.ts:14
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`value`): `Va` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | () => `T` |
+
+#### Returns
+
+`Va` \| `T`
+
+#### Defined in
+
+dist/maybe.d.ts:15
+
+___
+
+### zip
+
+▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`Va`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `maybe` | [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`Va`, `T`\>\>
+
+#### Defined in
+
+dist/maybe.d.ts:31
diff --git a/docs/api/classes/maybe._internal_.None.md b/docs/api/classes/maybe._internal_.None.md
new file mode 100644
index 0000000..7d53863
--- /dev/null
+++ b/docs/api/classes/maybe._internal_.None.md
@@ -0,0 +1,966 @@
+[Package](../README.md) / [Modules](../modules.md) / [maybe](../modules/maybe.md) / [\](../modules/maybe._internal_.md) / None
+
+# Class: None\
+
+[maybe](../modules/maybe.md).[\](../modules/maybe._internal_.md).None
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+## Hierarchy
+
+- [`MaybeConstructor`](maybe._internal_.MaybeConstructor.md)\<`T`\>
+
+ ↳ **`None`**
+
+## Implements
+
+- [`SerializedNone`](../modules/maybe._internal_.md#serializednone)
+
+## Table of contents
+
+### Constructors
+
+- [constructor](maybe._internal_.None.md#constructor)
+
+### Properties
+
+- [instance](maybe._internal_.None.md#instance)
+
+### Accessors
+
+- [[toStringTag]](maybe._internal_.None.md#[tostringtag])
+- [name](maybe._internal_.None.md#name)
+- [type](maybe._internal_.None.md#type)
+- [value](maybe._internal_.None.md#value)
+
+### Methods
+
+- [apply](maybe._internal_.None.md#apply)
+- [asyncApply](maybe._internal_.None.md#asyncapply)
+- [asyncChain](maybe._internal_.None.md#asyncchain)
+- [asyncMap](maybe._internal_.None.md#asyncmap)
+- [await](maybe._internal_.None.md#await)
+- [chain](maybe._internal_.None.md#chain)
+- [default](maybe._internal_.None.md#default)
+- [filter](maybe._internal_.None.md#filter)
+- [flatMap](maybe._internal_.None.md#flatmap)
+- [fold](maybe._internal_.None.md#fold)
+- [isJust](maybe._internal_.None.md#isjust)
+- [isNone](maybe._internal_.None.md#isnone)
+- [join](maybe._internal_.None.md#join)
+- [map](maybe._internal_.None.md#map)
+- [mapNullable](maybe._internal_.None.md#mapnullable)
+- [or](maybe._internal_.None.md#or)
+- [orAsync](maybe._internal_.None.md#orasync)
+- [orLazy](maybe._internal_.None.md#orlazy)
+- [pipe](maybe._internal_.None.md#pipe)
+- [tap](maybe._internal_.None.md#tap)
+- [toJSON](maybe._internal_.None.md#tojson)
+- [unwrap](maybe._internal_.None.md#unwrap)
+- [unwrapOr](maybe._internal_.None.md#unwrapor)
+- [unwrapOrElse](maybe._internal_.None.md#unwraporelse)
+- [zip](maybe._internal_.None.md#zip)
+- [create](maybe._internal_.None.md#create)
+
+## Constructors
+
+### constructor
+
+• `Private` **new None**\<`T`\>()
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Overrides
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[constructor](maybe._internal_.MaybeConstructor.md#constructor)
+
+#### Defined in
+
+dist/maybe.d.ts:67
+
+## Properties
+
+### instance
+
+▪ `Static` `Readonly` **instance**: [`None`](maybe._internal_.None.md)\<`never`\>
+
+#### Defined in
+
+dist/maybe.d.ts:61
+
+## Accessors
+
+### [toStringTag]
+
+• `get` **[toStringTag]**(): [`None`](../enums/maybe.MaybeState.md#none)
+
+#### Returns
+
+[`None`](../enums/maybe.MaybeState.md#none)
+
+#### Defined in
+
+dist/maybe.d.ts:64
+
+___
+
+### name
+
+• `get` **name**(): ``"Maybe"``
+
+#### Returns
+
+``"Maybe"``
+
+#### Implementation of
+
+SerializedNone.name
+
+#### Defined in
+
+dist/maybe.d.ts:65
+
+___
+
+### type
+
+• `get` **type**(): [`None`](../enums/maybe.MaybeState.md#none)
+
+#### Returns
+
+[`None`](../enums/maybe.MaybeState.md#none)
+
+#### Implementation of
+
+SerializedNone.type
+
+#### Defined in
+
+dist/maybe.d.ts:66
+
+___
+
+### value
+
+• `get` **value**(): `undefined`
+
+#### Returns
+
+`undefined`
+
+#### Defined in
+
+dist/maybe.d.ts:63
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[apply](maybe._internal_.MaybeConstructor.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:22
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`B`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[apply](maybe._internal_.MaybeConstructor.md#apply)
+
+#### Defined in
+
+dist/maybe.d.ts:23
+
+___
+
+### asyncApply
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `argument` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncApply](maybe._internal_.MaybeConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/maybe.d.ts:39
+
+▸ **asyncApply**\<`A`, `B`, `P`\>(`this`, `map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<`A`\> |
+| `map` | [`Maybe`](../modules/maybe.md#maybe)\<[`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`B`\>, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`B`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncApply](maybe._internal_.MaybeConstructor.md#asyncapply)
+
+#### Defined in
+
+dist/maybe.d.ts:40
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncChain](maybe._internal_.MaybeConstructor.md#asyncchain)
+
+#### Defined in
+
+dist/maybe.d.ts:36
+
+___
+
+### asyncMap
+
+▸ **asyncMap**\<`T`, `P`\>(`map`, `...parameters`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[asyncMap](maybe._internal_.MaybeConstructor.md#asyncmap)
+
+#### Defined in
+
+dist/maybe.d.ts:37
+
+___
+
+### await
+
+▸ **await**\<`T`\>(`this`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[await](maybe._internal_.MaybeConstructor.md#await)
+
+#### Defined in
+
+dist/maybe.d.ts:38
+
+___
+
+### chain
+
+▸ **chain**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, [`Maybe`](../modules/maybe.md#maybe)\<`V`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[chain](maybe._internal_.MaybeConstructor.md#chain)
+
+#### Defined in
+
+dist/maybe.d.ts:26
+
+___
+
+### default
+
+▸ **default**(`value`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[default](maybe._internal_.MaybeConstructor.md#default)
+
+#### Defined in
+
+dist/maybe.d.ts:27
+
+___
+
+### filter
+
+▸ **filter**\<`T`\>(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `T`) => input is T |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[filter](maybe._internal_.MaybeConstructor.md#filter)
+
+#### Defined in
+
+dist/maybe.d.ts:24
+
+▸ **filter**(`filter`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `filter` | (`input`: `T`) => `boolean` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[filter](maybe._internal_.MaybeConstructor.md#filter)
+
+#### Defined in
+
+dist/maybe.d.ts:25
+
+___
+
+### flatMap
+
+▸ **flatMap**\<`T`, `P`\>(`map`, `...parameters`): `undefined` \| `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`undefined` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[flatMap](maybe._internal_.MaybeConstructor.md#flatmap)
+
+#### Defined in
+
+dist/maybe.d.ts:33
+
+___
+
+### fold
+
+▸ **fold**\<`A`, `B`\>(`mapNone`, `mapJust`): `A` \| `B`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `mapNone` | [`Mapper`](../modules/types.md#mapper)\<`void`, `B`\> |
+| `mapJust` | [`Mapper`](../modules/types.md#mapper)\<`T`, `A`\> |
+
+#### Returns
+
+`A` \| `B`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[fold](maybe._internal_.MaybeConstructor.md#fold)
+
+#### Defined in
+
+dist/maybe.d.ts:35
+
+___
+
+### isJust
+
+▸ **isJust**(): this is Just\
+
+#### Returns
+
+this is Just\
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[isJust](maybe._internal_.MaybeConstructor.md#isjust)
+
+#### Defined in
+
+dist/maybe.d.ts:16
+
+___
+
+### isNone
+
+▸ **isNone**(): this is None\
+
+#### Returns
+
+this is None\
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[isNone](maybe._internal_.MaybeConstructor.md#isnone)
+
+#### Defined in
+
+dist/maybe.d.ts:17
+
+___
+
+### join
+
+▸ **join**\<`V`\>(`this`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Maybe`](../modules/maybe.md#maybe)\<[`Maybe`](../modules/maybe.md#maybe)\<`V`\>\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[join](maybe._internal_.MaybeConstructor.md#join)
+
+#### Defined in
+
+dist/maybe.d.ts:18
+
+___
+
+### map
+
+▸ **map**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[map](maybe._internal_.MaybeConstructor.md#map)
+
+#### Defined in
+
+dist/maybe.d.ts:20
+
+___
+
+### mapNullable
+
+▸ **mapNullable**\<`V`, `P`\>(`map`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`T`, `undefined` \| ``null`` \| `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`V`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[mapNullable](maybe._internal_.MaybeConstructor.md#mapnullable)
+
+#### Defined in
+
+dist/maybe.d.ts:21
+
+___
+
+### or
+
+▸ **or**(`x`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `x` | [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[or](maybe._internal_.MaybeConstructor.md#or)
+
+#### Defined in
+
+dist/maybe.d.ts:28
+
+___
+
+### orAsync
+
+▸ **orAsync**(`factory`): `Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\> |
+
+#### Returns
+
+`Promise`\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[orAsync](maybe._internal_.MaybeConstructor.md#orasync)
+
+#### Defined in
+
+dist/maybe.d.ts:30
+
+___
+
+### orLazy
+
+▸ **orLazy**(`factory`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `factory` | () => [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[orLazy](maybe._internal_.MaybeConstructor.md#orlazy)
+
+#### Defined in
+
+dist/maybe.d.ts:29
+
+___
+
+### pipe
+
+▸ **pipe**\<`V`, `P`\>(`pipe`, `...parameters`): `V`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `V` | `V` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `pipe` | [`Mapper`](../modules/types.md#mapper)\<[`Maybe`](../modules/maybe.md#maybe)\<`T`\>, `V`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`V`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[pipe](maybe._internal_.MaybeConstructor.md#pipe)
+
+#### Defined in
+
+dist/maybe.d.ts:19
+
+___
+
+### tap
+
+▸ **tap**\<`P`\>(`callback`, `...parameters`): [`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<`T`, `void`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<`T`\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[tap](maybe._internal_.MaybeConstructor.md#tap)
+
+#### Defined in
+
+dist/maybe.d.ts:32
+
+___
+
+### toJSON
+
+▸ **toJSON**(): [`SerializedNone`](../modules/maybe._internal_.md#serializednone)
+
+#### Returns
+
+[`SerializedNone`](../modules/maybe._internal_.md#serializednone)
+
+#### Defined in
+
+dist/maybe.d.ts:68
+
+___
+
+### unwrap
+
+▸ **unwrap**(`message?`): `T`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `message?` | `string` |
+
+#### Returns
+
+`T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrap](maybe._internal_.MaybeConstructor.md#unwrap)
+
+#### Defined in
+
+dist/maybe.d.ts:34
+
+___
+
+### unwrapOr
+
+▸ **unwrapOr**\<`T`\>(`value`): `T` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+`T` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrapOr](maybe._internal_.MaybeConstructor.md#unwrapor)
+
+#### Defined in
+
+dist/maybe.d.ts:14
+
+___
+
+### unwrapOrElse
+
+▸ **unwrapOrElse**\<`T`\>(`value`): `T` \| `T`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | () => `T` |
+
+#### Returns
+
+`T` \| `T`
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[unwrapOrElse](maybe._internal_.MaybeConstructor.md#unwraporelse)
+
+#### Defined in
+
+dist/maybe.d.ts:15
+
+___
+
+### zip
+
+▸ **zip**\<`T`\>(`maybe`): [`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`T`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `maybe` | [`Maybe`](../modules/maybe.md#maybe)\<`T`\> |
+
+#### Returns
+
+[`Maybe`](../modules/maybe.md#maybe)\<[`Pair`](../modules/index.md#pair)\<`T`, `T`\>\>
+
+#### Inherited from
+
+[MaybeConstructor](maybe._internal_.MaybeConstructor.md).[zip](maybe._internal_.MaybeConstructor.md#zip)
+
+#### Defined in
+
+dist/maybe.d.ts:31
+
+___
+
+### create
+
+▸ `Static` **create**\<`T`\>(): [`None`](maybe._internal_.None.md)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Returns
+
+[`None`](maybe._internal_.None.md)\<`T`\>
+
+#### Defined in
+
+dist/maybe.d.ts:62
diff --git a/docs/api/enums/either.EitherType.md b/docs/api/enums/either.EitherType.md
new file mode 100644
index 0000000..4c06e62
--- /dev/null
+++ b/docs/api/enums/either.EitherType.md
@@ -0,0 +1,32 @@
+[Package](../README.md) / [Modules](../modules.md) / [either](../modules/either.md) / EitherType
+
+# Enumeration: EitherType
+
+[either](../modules/either.md).EitherType
+
+## Table of contents
+
+### Enumeration Members
+
+- [Left](either.EitherType.md#left)
+- [Right](either.EitherType.md#right)
+
+## Enumeration Members
+
+### Left
+
+• **Left** = ``"Left"``
+
+#### Defined in
+
+dist/either.d.ts:3
+
+___
+
+### Right
+
+• **Right** = ``"Right"``
+
+#### Defined in
+
+dist/either.d.ts:4
diff --git a/docs/api/enums/index._internal_.DecorationErrorMessages.md b/docs/api/enums/index._internal_.DecorationErrorMessages.md
new file mode 100644
index 0000000..f50fd8e
--- /dev/null
+++ b/docs/api/enums/index._internal_.DecorationErrorMessages.md
@@ -0,0 +1,21 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / [\](../modules/index._internal_.md) / DecorationErrorMessages
+
+# Enumeration: DecorationErrorMessages
+
+[index](../modules/index.md).[\](../modules/index._internal_.md).DecorationErrorMessages
+
+## Table of contents
+
+### Enumeration Members
+
+- [EXPECTED\_DECORATING\_METHOD](index._internal_.DecorationErrorMessages.md#expected_decorating_method)
+
+## Enumeration Members
+
+### EXPECTED\_DECORATING\_METHOD
+
+• **EXPECTED\_DECORATING\_METHOD** = ``"Expected decorating method"``
+
+#### Defined in
+
+dist/errors.d.ts:12
diff --git a/docs/api/enums/internal_.DeserializationErrorMessages.md b/docs/api/enums/index._internal_.DeserializationErrorMessages.md
similarity index 50%
rename from docs/api/enums/internal_.DeserializationErrorMessages.md
rename to docs/api/enums/index._internal_.DeserializationErrorMessages.md
index ecba1b9..aeb7d3d 100644
--- a/docs/api/enums/internal_.DeserializationErrorMessages.md
+++ b/docs/api/enums/index._internal_.DeserializationErrorMessages.md
@@ -1,16 +1,16 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / DeserializationErrorMessages
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / [\](../modules/index._internal_.md) / DeserializationErrorMessages
# Enumeration: DeserializationErrorMessages
-[\](../modules/internal_.md).DeserializationErrorMessages
+[index](../modules/index.md).[\](../modules/index._internal_.md).DeserializationErrorMessages
## Table of contents
### Enumeration Members
-- [EITHER\_INVALID\_STATE](internal_.DeserializationErrorMessages.md#either_invalid_state)
-- [EXPECTED\_EITHER](internal_.DeserializationErrorMessages.md#expected_either)
-- [EXPECTED\_MAYBE](internal_.DeserializationErrorMessages.md#expected_maybe)
+- [EITHER\_INVALID\_STATE](index._internal_.DeserializationErrorMessages.md#either_invalid_state)
+- [EXPECTED\_EITHER](index._internal_.DeserializationErrorMessages.md#expected_either)
+- [EXPECTED\_MAYBE](index._internal_.DeserializationErrorMessages.md#expected_maybe)
## Enumeration Members
diff --git a/docs/api/enums/index._internal_.InvalidStateMessages.md b/docs/api/enums/index._internal_.InvalidStateMessages.md
new file mode 100644
index 0000000..e8a70e4
--- /dev/null
+++ b/docs/api/enums/index._internal_.InvalidStateMessages.md
@@ -0,0 +1,32 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / [\](../modules/index._internal_.md) / InvalidStateMessages
+
+# Enumeration: InvalidStateMessages
+
+[index](../modules/index.md).[\](../modules/index._internal_.md).InvalidStateMessages
+
+## Table of contents
+
+### Enumeration Members
+
+- [APPLY\_SHOULD\_BE\_FUNCTION](index._internal_.InvalidStateMessages.md#apply_should_be_function)
+- [INVALID\_STATE](index._internal_.InvalidStateMessages.md#invalid_state)
+
+## Enumeration Members
+
+### APPLY\_SHOULD\_BE\_FUNCTION
+
+• **APPLY\_SHOULD\_BE\_FUNCTION** = ``"Some of the arguments should be a function"``
+
+#### Defined in
+
+dist/errors.d.ts:21
+
+___
+
+### INVALID\_STATE
+
+• **INVALID\_STATE** = ``"Invalid state"``
+
+#### Defined in
+
+dist/errors.d.ts:20
diff --git a/docs/api/enums/index._internal_.UnwrapCustomErrorMessages.md b/docs/api/enums/index._internal_.UnwrapCustomErrorMessages.md
new file mode 100644
index 0000000..eaa5304
--- /dev/null
+++ b/docs/api/enums/index._internal_.UnwrapCustomErrorMessages.md
@@ -0,0 +1,32 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / [\](../modules/index._internal_.md) / UnwrapCustomErrorMessages
+
+# Enumeration: UnwrapCustomErrorMessages
+
+[index](../modules/index.md).[\](../modules/index._internal_.md).UnwrapCustomErrorMessages
+
+## Table of contents
+
+### Enumeration Members
+
+- [EITHER\_IS\_LEFT](index._internal_.UnwrapCustomErrorMessages.md#either_is_left)
+- [MAYBE\_IS\_NONE](index._internal_.UnwrapCustomErrorMessages.md#maybe_is_none)
+
+## Enumeration Members
+
+### EITHER\_IS\_LEFT
+
+• **EITHER\_IS\_LEFT** = ``"Either state is Left"``
+
+#### Defined in
+
+dist/errors.d.ts:29
+
+___
+
+### MAYBE\_IS\_NONE
+
+• **MAYBE\_IS\_NONE** = ``"Maybe state is None"``
+
+#### Defined in
+
+dist/errors.d.ts:30
diff --git a/docs/api/enums/internal_.DecorationErrorMessages.md b/docs/api/enums/internal_.DecorationErrorMessages.md
deleted file mode 100644
index a747455..0000000
--- a/docs/api/enums/internal_.DecorationErrorMessages.md
+++ /dev/null
@@ -1,21 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / DecorationErrorMessages
-
-# Enumeration: DecorationErrorMessages
-
-[\](../modules/internal_.md).DecorationErrorMessages
-
-## Table of contents
-
-### Enumeration Members
-
-- [EXPECTED\_DECORATING\_METHOD](internal_.DecorationErrorMessages.md#expected_decorating_method)
-
-## Enumeration Members
-
-### EXPECTED\_DECORATING\_METHOD
-
-• **EXPECTED\_DECORATING\_METHOD** = ``"Expected decorating method"``
-
-#### Defined in
-
-dist/errors.d.ts:12
diff --git a/docs/api/enums/internal_.InvalidStateMessages.md b/docs/api/enums/internal_.InvalidStateMessages.md
deleted file mode 100644
index c33c3d2..0000000
--- a/docs/api/enums/internal_.InvalidStateMessages.md
+++ /dev/null
@@ -1,32 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / InvalidStateMessages
-
-# Enumeration: InvalidStateMessages
-
-[\](../modules/internal_.md).InvalidStateMessages
-
-## Table of contents
-
-### Enumeration Members
-
-- [APPLY\_SHOULD\_BE\_FUNCTION](internal_.InvalidStateMessages.md#apply_should_be_function)
-- [INVALID\_STATE](internal_.InvalidStateMessages.md#invalid_state)
-
-## Enumeration Members
-
-### APPLY\_SHOULD\_BE\_FUNCTION
-
-• **APPLY\_SHOULD\_BE\_FUNCTION** = ``"Some of the arguments should be a function"``
-
-#### Defined in
-
-dist/errors.d.ts:21
-
-___
-
-### INVALID\_STATE
-
-• **INVALID\_STATE** = ``"Invalid state"``
-
-#### Defined in
-
-dist/errors.d.ts:20
diff --git a/docs/api/enums/internal_.UnwrapCustomErrorMessages.md b/docs/api/enums/internal_.UnwrapCustomErrorMessages.md
deleted file mode 100644
index a31ab7f..0000000
--- a/docs/api/enums/internal_.UnwrapCustomErrorMessages.md
+++ /dev/null
@@ -1,32 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / UnwrapCustomErrorMessages
-
-# Enumeration: UnwrapCustomErrorMessages
-
-[\](../modules/internal_.md).UnwrapCustomErrorMessages
-
-## Table of contents
-
-### Enumeration Members
-
-- [EITHER\_IS\_LEFT](internal_.UnwrapCustomErrorMessages.md#either_is_left)
-- [MAYBE\_IS\_NONE](internal_.UnwrapCustomErrorMessages.md#maybe_is_none)
-
-## Enumeration Members
-
-### EITHER\_IS\_LEFT
-
-• **EITHER\_IS\_LEFT** = ``"Either state is Left"``
-
-#### Defined in
-
-dist/errors.d.ts:29
-
-___
-
-### MAYBE\_IS\_NONE
-
-• **MAYBE\_IS\_NONE** = ``"Maybe state is None"``
-
-#### Defined in
-
-dist/errors.d.ts:30
diff --git a/docs/api/enums/maybe.MaybeState.md b/docs/api/enums/maybe.MaybeState.md
new file mode 100644
index 0000000..47f67e8
--- /dev/null
+++ b/docs/api/enums/maybe.MaybeState.md
@@ -0,0 +1,32 @@
+[Package](../README.md) / [Modules](../modules.md) / [maybe](../modules/maybe.md) / MaybeState
+
+# Enumeration: MaybeState
+
+[maybe](../modules/maybe.md).MaybeState
+
+## Table of contents
+
+### Enumeration Members
+
+- [Just](maybe.MaybeState.md#just)
+- [None](maybe.MaybeState.md#none)
+
+## Enumeration Members
+
+### Just
+
+• **Just** = ``"Just"``
+
+#### Defined in
+
+dist/maybe.d.ts:4
+
+___
+
+### None
+
+• **None** = ``"None"``
+
+#### Defined in
+
+dist/maybe.d.ts:3
diff --git a/docs/api/interfaces/Alternative.md b/docs/api/interfaces/Alternative.md
deleted file mode 100644
index 796298f..0000000
--- a/docs/api/interfaces/Alternative.md
+++ /dev/null
@@ -1,61 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / Alternative
-
-# Interface: Alternative\
-
-## Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-## Implemented by
-
-- [`EitherConstructor`](../classes/internal_.EitherConstructor.md)
-- [`MaybeConstructor`](../classes/internal_.MaybeConstructor.md)
-
-## Table of contents
-
-### Methods
-
-- [default](Alternative.md#default)
-- [or](Alternative.md#or)
-
-## Methods
-
-### default
-
-▸ **default**(`value`): [`Alternative`](Alternative.md)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-[`Alternative`](Alternative.md)\<`T`\>
-
-#### Defined in
-
-dist/types.d.ts:13
-
-___
-
-### or
-
-▸ **or**(`alternative`): [`Alternative`](Alternative.md)\<`T`\>
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `alternative` | [`Alternative`](Alternative.md)\<`T`\> |
-
-#### Returns
-
-[`Alternative`](Alternative.md)\<`T`\>
-
-#### Defined in
-
-dist/types.d.ts:12
diff --git a/docs/api/interfaces/Applicative.md b/docs/api/interfaces/Applicative.md
deleted file mode 100644
index 3b10764..0000000
--- a/docs/api/interfaces/Applicative.md
+++ /dev/null
@@ -1,112 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / Applicative
-
-# Interface: Applicative\
-
-## Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-## Hierarchy
-
-- [`Functor`](Functor.md)\<`A`\>
-
- ↳ **`Applicative`**
-
- ↳↳ [`Monad`](Monad.md)
-
-## Table of contents
-
-### Methods
-
-- [apply](Applicative.md#apply)
-- [map](Applicative.md#map)
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Applicative`](Applicative.md)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Defined in
-
-dist/types.d.ts:19
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<`A`\> |
-| `argument` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Defined in
-
-dist/types.d.ts:20
-
-___
-
-### map
-
-▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](Functor.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Functor`](Functor.md)\<`B`\>
-
-#### Inherited from
-
-[Functor](Functor.md).[map](Functor.md#map)
-
-#### Defined in
-
-dist/types.d.ts:16
diff --git a/docs/api/interfaces/AsyncMonad.md b/docs/api/interfaces/AsyncMonad.md
deleted file mode 100644
index 120be1c..0000000
--- a/docs/api/interfaces/AsyncMonad.md
+++ /dev/null
@@ -1,243 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / AsyncMonad
-
-# Interface: AsyncMonad\
-
-## Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-## Hierarchy
-
-- [`Monad`](Monad.md)\<`A`\>
-
- ↳ **`AsyncMonad`**
-
-## Implemented by
-
-- [`EitherConstructor`](../classes/internal_.EitherConstructor.md)
-- [`Identity`](../classes/internal_.Identity.md)
-
-## Table of contents
-
-### Methods
-
-- [apply](AsyncMonad.md#apply)
-- [asyncChain](AsyncMonad.md#asyncchain)
-- [await](AsyncMonad.md#await)
-- [chain](AsyncMonad.md#chain)
-- [join](AsyncMonad.md#join)
-- [map](AsyncMonad.md#map)
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Applicative`](Applicative.md)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Inherited from
-
-[Monad](Monad.md).[apply](Monad.md#apply)
-
-#### Defined in
-
-dist/types.d.ts:19
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<`A`\> |
-| `argument` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Inherited from
-
-[Monad](Monad.md).[apply](Monad.md#apply)
-
-#### Defined in
-
-dist/types.d.ts:20
-
-___
-
-### asyncChain
-
-▸ **asyncChain**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`AsyncMonad`](AsyncMonad.md)\<`B`\>\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`MaybePromiseLike`](../modules.md#maybepromiselike)\<[`AsyncMonad`](AsyncMonad.md)\<`B`\>\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`Promise`\<[`AsyncMonad`](AsyncMonad.md)\<`B`\>\>
-
-#### Defined in
-
-dist/types.d.ts:27
-
-___
-
-### await
-
-▸ **await**\<`A`\>(`this`): `Promise`\<[`AsyncMonad`](AsyncMonad.md)\<`A`\>\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`AsyncMonad`](AsyncMonad.md)\<[`MaybePromiseLike`](../modules.md#maybepromiselike)\<`A`\>\> |
-
-#### Returns
-
-`Promise`\<[`AsyncMonad`](AsyncMonad.md)\<`A`\>\>
-
-#### Defined in
-
-dist/types.d.ts:28
-
-___
-
-### chain
-
-▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Monad`](Monad.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`Monad`](Monad.md)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Monad`](Monad.md)\<`B`\>
-
-#### Inherited from
-
-[Monad](Monad.md).[chain](Monad.md#chain)
-
-#### Defined in
-
-dist/types.d.ts:23
-
-___
-
-### join
-
-▸ **join**\<`A`\>(`this`): [`Monad`](Monad.md)\<`A`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Monad`](Monad.md)\<[`Monad`](Monad.md)\<`A`\>\> |
-
-#### Returns
-
-[`Monad`](Monad.md)\<`A`\>
-
-#### Inherited from
-
-[Monad](Monad.md).[join](Monad.md#join)
-
-#### Defined in
-
-dist/types.d.ts:24
-
-___
-
-### map
-
-▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](Functor.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Functor`](Functor.md)\<`B`\>
-
-#### Inherited from
-
-[Monad](Monad.md).[map](Monad.md#map)
-
-#### Defined in
-
-dist/types.d.ts:16
diff --git a/docs/api/interfaces/Functor.md b/docs/api/interfaces/Functor.md
deleted file mode 100644
index 43a0c34..0000000
--- a/docs/api/interfaces/Functor.md
+++ /dev/null
@@ -1,49 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / Functor
-
-# Interface: Functor\
-
-## Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-## Hierarchy
-
-- **`Functor`**
-
- ↳ [`Applicative`](Applicative.md)
-
-## Table of contents
-
-### Methods
-
-- [map](Functor.md#map)
-
-## Methods
-
-### map
-
-▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](Functor.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Functor`](Functor.md)\<`B`\>
-
-#### Defined in
-
-dist/types.d.ts:16
diff --git a/docs/api/interfaces/Monad.md b/docs/api/interfaces/Monad.md
deleted file mode 100644
index 9d8a520..0000000
--- a/docs/api/interfaces/Monad.md
+++ /dev/null
@@ -1,180 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / Monad
-
-# Interface: Monad\
-
-## Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-## Hierarchy
-
-- [`Applicative`](Applicative.md)\<`A`\>
-
- ↳ **`Monad`**
-
- ↳↳ [`AsyncMonad`](AsyncMonad.md)
-
-## Implemented by
-
-- [`MaybeConstructor`](../classes/internal_.MaybeConstructor.md)
-
-## Table of contents
-
-### Methods
-
-- [apply](Monad.md#apply)
-- [chain](Monad.md#chain)
-- [join](Monad.md#join)
-- [map](Monad.md#map)
-
-## Methods
-
-### apply
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `argument` | [`Applicative`](Applicative.md)\<`A`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Inherited from
-
-[Applicative](Applicative.md).[apply](Applicative.md#apply)
-
-#### Defined in
-
-dist/types.d.ts:19
-
-▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](Applicative.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Applicative`](Applicative.md)\<`A`\> |
-| `argument` | [`Applicative`](Applicative.md)\<[`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\>\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Applicative`](Applicative.md)\<`B`\>
-
-#### Inherited from
-
-[Applicative](Applicative.md).[apply](Applicative.md#apply)
-
-#### Defined in
-
-dist/types.d.ts:20
-
-___
-
-### chain
-
-▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Monad`](Monad.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, [`Monad`](Monad.md)\<`B`\>, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Monad`](Monad.md)\<`B`\>
-
-#### Defined in
-
-dist/types.d.ts:23
-
-___
-
-### join
-
-▸ **join**\<`A`\>(`this`): [`Monad`](Monad.md)\<`A`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `this` | [`Monad`](Monad.md)\<[`Monad`](Monad.md)\<`A`\>\> |
-
-#### Returns
-
-[`Monad`](Monad.md)\<`A`\>
-
-#### Defined in
-
-dist/types.d.ts:24
-
-___
-
-### map
-
-▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](Functor.md)\<`B`\>
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | [`Mapper`](../modules/internal_.md#mapper)\<`A`, `B`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-[`Functor`](Functor.md)\<`B`\>
-
-#### Inherited from
-
-[Applicative](Applicative.md).[map](Applicative.md#map)
-
-#### Defined in
-
-dist/types.d.ts:16
diff --git a/docs/api/interfaces/index.Alternative.md b/docs/api/interfaces/index.Alternative.md
new file mode 100644
index 0000000..dc9ae8b
--- /dev/null
+++ b/docs/api/interfaces/index.Alternative.md
@@ -0,0 +1,63 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / Alternative
+
+# Interface: Alternative\
+
+[index](../modules/index.md).Alternative
+
+## Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+## Implemented by
+
+- [`EitherConstructor`](../classes/either._internal_.EitherConstructor.md)
+- [`MaybeConstructor`](../classes/maybe._internal_.MaybeConstructor.md)
+
+## Table of contents
+
+### Methods
+
+- [default](index.Alternative.md#default)
+- [or](index.Alternative.md#or)
+
+## Methods
+
+### default
+
+▸ **default**(`value`): [`Alternative`](index.Alternative.md)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Alternative`](index.Alternative.md)\<`T`\>
+
+#### Defined in
+
+dist/types.d.ts:13
+
+___
+
+### or
+
+▸ **or**(`alternative`): [`Alternative`](index.Alternative.md)\<`T`\>
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `alternative` | [`Alternative`](index.Alternative.md)\<`T`\> |
+
+#### Returns
+
+[`Alternative`](index.Alternative.md)\<`T`\>
+
+#### Defined in
+
+dist/types.d.ts:12
diff --git a/docs/api/interfaces/index.Applicative.md b/docs/api/interfaces/index.Applicative.md
new file mode 100644
index 0000000..d152d34
--- /dev/null
+++ b/docs/api/interfaces/index.Applicative.md
@@ -0,0 +1,114 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / Applicative
+
+# Interface: Applicative\
+
+[index](../modules/index.md).Applicative
+
+## Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+## Hierarchy
+
+- [`Functor`](index.Functor.md)\<`A`\>
+
+ ↳ **`Applicative`**
+
+ ↳↳ [`Monad`](index.Monad.md)
+
+## Table of contents
+
+### Methods
+
+- [apply](index.Applicative.md#apply)
+- [map](index.Applicative.md#map)
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Defined in
+
+dist/types.d.ts:19
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Defined in
+
+dist/types.d.ts:20
+
+___
+
+### map
+
+▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](index.Functor.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Functor`](index.Functor.md)\<`B`\>
+
+#### Inherited from
+
+[Functor](index.Functor.md).[map](index.Functor.md#map)
+
+#### Defined in
+
+dist/types.d.ts:16
diff --git a/docs/api/interfaces/index.AsyncMonad.md b/docs/api/interfaces/index.AsyncMonad.md
new file mode 100644
index 0000000..053914d
--- /dev/null
+++ b/docs/api/interfaces/index.AsyncMonad.md
@@ -0,0 +1,245 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / AsyncMonad
+
+# Interface: AsyncMonad\
+
+[index](../modules/index.md).AsyncMonad
+
+## Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+## Hierarchy
+
+- [`Monad`](index.Monad.md)\<`A`\>
+
+ ↳ **`AsyncMonad`**
+
+## Implemented by
+
+- [`EitherConstructor`](../classes/either._internal_.EitherConstructor.md)
+- [`Identity`](../classes/identity.Identity.md)
+
+## Table of contents
+
+### Methods
+
+- [apply](index.AsyncMonad.md#apply)
+- [asyncChain](index.AsyncMonad.md#asyncchain)
+- [await](index.AsyncMonad.md#await)
+- [chain](index.AsyncMonad.md#chain)
+- [join](index.AsyncMonad.md#join)
+- [map](index.AsyncMonad.md#map)
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Inherited from
+
+[Monad](index.Monad.md).[apply](index.Monad.md#apply)
+
+#### Defined in
+
+dist/types.d.ts:19
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Inherited from
+
+[Monad](index.Monad.md).[apply](index.Monad.md#apply)
+
+#### Defined in
+
+dist/types.d.ts:20
+
+___
+
+### asyncChain
+
+▸ **asyncChain**\<`B`, `P`\>(`map`, `...parameters`): `Promise`\<[`AsyncMonad`](index.AsyncMonad.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, [`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<[`AsyncMonad`](index.AsyncMonad.md)\<`B`\>\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`Promise`\<[`AsyncMonad`](index.AsyncMonad.md)\<`B`\>\>
+
+#### Defined in
+
+dist/types.d.ts:27
+
+___
+
+### await
+
+▸ **await**\<`A`\>(`this`): `Promise`\<[`AsyncMonad`](index.AsyncMonad.md)\<`A`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`AsyncMonad`](index.AsyncMonad.md)\<[`MaybePromiseLike`](../modules/index.md#maybepromiselike)\<`A`\>\> |
+
+#### Returns
+
+`Promise`\<[`AsyncMonad`](index.AsyncMonad.md)\<`A`\>\>
+
+#### Defined in
+
+dist/types.d.ts:28
+
+___
+
+### chain
+
+▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Monad`](index.Monad.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, [`Monad`](index.Monad.md)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Monad`](index.Monad.md)\<`B`\>
+
+#### Inherited from
+
+[Monad](index.Monad.md).[chain](index.Monad.md#chain)
+
+#### Defined in
+
+dist/types.d.ts:23
+
+___
+
+### join
+
+▸ **join**\<`A`\>(`this`): [`Monad`](index.Monad.md)\<`A`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Monad`](index.Monad.md)\<[`Monad`](index.Monad.md)\<`A`\>\> |
+
+#### Returns
+
+[`Monad`](index.Monad.md)\<`A`\>
+
+#### Inherited from
+
+[Monad](index.Monad.md).[join](index.Monad.md#join)
+
+#### Defined in
+
+dist/types.d.ts:24
+
+___
+
+### map
+
+▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](index.Functor.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Functor`](index.Functor.md)\<`B`\>
+
+#### Inherited from
+
+[Monad](index.Monad.md).[map](index.Monad.md#map)
+
+#### Defined in
+
+dist/types.d.ts:16
diff --git a/docs/api/interfaces/Container.md b/docs/api/interfaces/index.Container.md
similarity index 54%
rename from docs/api/interfaces/Container.md
rename to docs/api/interfaces/index.Container.md
index 9fc2ca1..3925eb0 100644
--- a/docs/api/interfaces/Container.md
+++ b/docs/api/interfaces/index.Container.md
@@ -1,7 +1,9 @@
-[Package](../README.md) / [Exports](../modules.md) / Container
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / Container
# Interface: Container\
+[index](../modules/index.md).Container
+
## Type parameters
| Name |
@@ -10,16 +12,16 @@
## Implemented by
-- [`EitherConstructor`](../classes/internal_.EitherConstructor.md)
-- [`Identity`](../classes/internal_.Identity.md)
-- [`MaybeConstructor`](../classes/internal_.MaybeConstructor.md)
+- [`EitherConstructor`](../classes/either._internal_.EitherConstructor.md)
+- [`Identity`](../classes/identity.Identity.md)
+- [`MaybeConstructor`](../classes/maybe._internal_.MaybeConstructor.md)
## Table of contents
### Methods
-- [unwrap](Container.md#unwrap)
-- [unwrapOr](Container.md#unwrapor)
+- [unwrap](index.Container.md#unwrap)
+- [unwrapOr](index.Container.md#unwrapor)
## Methods
diff --git a/docs/api/interfaces/index.Functor.md b/docs/api/interfaces/index.Functor.md
new file mode 100644
index 0000000..88ff0bc
--- /dev/null
+++ b/docs/api/interfaces/index.Functor.md
@@ -0,0 +1,51 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / Functor
+
+# Interface: Functor\
+
+[index](../modules/index.md).Functor
+
+## Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+## Hierarchy
+
+- **`Functor`**
+
+ ↳ [`Applicative`](index.Applicative.md)
+
+## Table of contents
+
+### Methods
+
+- [map](index.Functor.md#map)
+
+## Methods
+
+### map
+
+▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](index.Functor.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Functor`](index.Functor.md)\<`B`\>
+
+#### Defined in
+
+dist/types.d.ts:16
diff --git a/docs/api/interfaces/index.Monad.md b/docs/api/interfaces/index.Monad.md
new file mode 100644
index 0000000..dab9293
--- /dev/null
+++ b/docs/api/interfaces/index.Monad.md
@@ -0,0 +1,182 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](../modules/index.md) / Monad
+
+# Interface: Monad\
+
+[index](../modules/index.md).Monad
+
+## Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+## Hierarchy
+
+- [`Applicative`](index.Applicative.md)\<`A`\>
+
+ ↳ **`Monad`**
+
+ ↳↳ [`AsyncMonad`](index.AsyncMonad.md)
+
+## Implemented by
+
+- [`MaybeConstructor`](../classes/maybe._internal_.MaybeConstructor.md)
+
+## Table of contents
+
+### Methods
+
+- [apply](index.Monad.md#apply)
+- [chain](index.Monad.md#chain)
+- [join](index.Monad.md#join)
+- [map](index.Monad.md#map)
+
+## Methods
+
+### apply
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Inherited from
+
+[Applicative](index.Applicative.md).[apply](index.Applicative.md#apply)
+
+#### Defined in
+
+dist/types.d.ts:19
+
+▸ **apply**\<`A`, `B`, `P`\>(`this`, `argument`, `...parameters`): [`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `A` |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Applicative`](index.Applicative.md)\<`A`\> |
+| `argument` | [`Applicative`](index.Applicative.md)\<[`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Applicative`](index.Applicative.md)\<`B`\>
+
+#### Inherited from
+
+[Applicative](index.Applicative.md).[apply](index.Applicative.md#apply)
+
+#### Defined in
+
+dist/types.d.ts:20
+
+___
+
+### chain
+
+▸ **chain**\<`B`, `P`\>(`map`, `...parameters`): [`Monad`](index.Monad.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, [`Monad`](index.Monad.md)\<`B`\>, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Monad`](index.Monad.md)\<`B`\>
+
+#### Defined in
+
+dist/types.d.ts:23
+
+___
+
+### join
+
+▸ **join**\<`A`\>(`this`): [`Monad`](index.Monad.md)\<`A`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | [`Monad`](index.Monad.md)\<[`Monad`](index.Monad.md)\<`A`\>\> |
+
+#### Returns
+
+[`Monad`](index.Monad.md)\<`A`\>
+
+#### Defined in
+
+dist/types.d.ts:24
+
+___
+
+### map
+
+▸ **map**\<`B`, `P`\>(`map`, `...parameters`): [`Functor`](index.Functor.md)\<`B`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | `B` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | [`Mapper`](../modules/types.md#mapper)\<`A`, `B`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+[`Functor`](index.Functor.md)\<`B`\>
+
+#### Inherited from
+
+[Applicative](index.Applicative.md).[map](index.Applicative.md#map)
+
+#### Defined in
+
+dist/types.d.ts:16
diff --git a/docs/api/interfaces/internal_.Pipe.md b/docs/api/interfaces/internal_.Pipe.md
deleted file mode 100644
index adadd1b..0000000
--- a/docs/api/interfaces/internal_.Pipe.md
+++ /dev/null
@@ -1,45 +0,0 @@
-[Package](../README.md) / [Exports](../modules.md) / [\](../modules/internal_.md) / Pipe
-
-# Interface: Pipe
-
-[\](../modules/internal_.md).Pipe
-
-## Implemented by
-
-- [`EitherConstructor`](../classes/internal_.EitherConstructor.md)
-- [`Identity`](../classes/internal_.Identity.md)
-- [`MaybeConstructor`](../classes/internal_.MaybeConstructor.md)
-
-## Table of contents
-
-### Methods
-
-- [pipe](internal_.Pipe.md#pipe)
-
-## Methods
-
-### pipe
-
-▸ **pipe**\<`T`, `P`\>(`callback`, `...parameters`): `T`
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `T` | `T` |
-| `P` | extends [`AnyParameters`](../modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `callback` | [`Mapper`](../modules/internal_.md#mapper)\<[`Pipe`](internal_.Pipe.md), `T`, `P`\> |
-| `...parameters` | `P` |
-
-#### Returns
-
-`T`
-
-#### Defined in
-
-dist/types.d.ts:35
diff --git a/docs/api/interfaces/maybe.MaybeOperation.md b/docs/api/interfaces/maybe.MaybeOperation.md
new file mode 100644
index 0000000..8493947
--- /dev/null
+++ b/docs/api/interfaces/maybe.MaybeOperation.md
@@ -0,0 +1,38 @@
+[Package](../README.md) / [Modules](../modules.md) / [maybe](../modules/maybe.md) / MaybeOperation
+
+# Interface: MaybeOperation\
+
+[maybe](../modules/maybe.md).MaybeOperation
+
+## Type parameters
+
+| Name |
+| :------ |
+| `V` |
+| `T` |
+
+## Table of contents
+
+### Methods
+
+- [maybe](maybe.MaybeOperation.md#maybe)
+
+## Methods
+
+### maybe
+
+▸ **maybe**(`maybe`): `T`
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `maybe` | [`Maybe`](../modules/maybe.md#maybe)\<`V`\> |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+dist/maybe.d.ts:11
diff --git a/docs/api/interfaces/types.Pipe.md b/docs/api/interfaces/types.Pipe.md
new file mode 100644
index 0000000..b25ba01
--- /dev/null
+++ b/docs/api/interfaces/types.Pipe.md
@@ -0,0 +1,45 @@
+[Package](../README.md) / [Modules](../modules.md) / [types](../modules/types.md) / Pipe
+
+# Interface: Pipe
+
+[types](../modules/types.md).Pipe
+
+## Implemented by
+
+- [`EitherConstructor`](../classes/either._internal_.EitherConstructor.md)
+- [`Identity`](../classes/identity.Identity.md)
+- [`MaybeConstructor`](../classes/maybe._internal_.MaybeConstructor.md)
+
+## Table of contents
+
+### Methods
+
+- [pipe](types.Pipe.md#pipe)
+
+## Methods
+
+### pipe
+
+▸ **pipe**\<`T`, `P`\>(`callback`, `...parameters`): `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `T` |
+| `P` | extends [`AnyParameters`](../modules/index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | [`Mapper`](../modules/types.md#mapper)\<[`Pipe`](types.Pipe.md), `T`, `P`\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`T`
+
+#### Defined in
+
+dist/types.d.ts:35
diff --git a/docs/api/modules.md b/docs/api/modules.md
index fef78e9..83b6d01 100644
--- a/docs/api/modules.md
+++ b/docs/api/modules.md
@@ -1,4 +1,4 @@
-[Package](README.md) / Exports
+[Package](README.md) / Modules
# Package
@@ -6,443 +6,8 @@
### Modules
-- [\](modules/internal_.md)
-
-### Classes
-
-- [DecorationError](classes/DecorationError.md)
-- [DeserializationError](classes/DeserializationError.md)
-- [InvalidStateError](classes/InvalidStateError.md)
-- [UnwrapCustomError](classes/UnwrapCustomError.md)
-
-### Interfaces
-
-- [Alternative](interfaces/Alternative.md)
-- [Applicative](interfaces/Applicative.md)
-- [AsyncMonad](interfaces/AsyncMonad.md)
-- [Container](interfaces/Container.md)
-- [Functor](interfaces/Functor.md)
-- [Monad](interfaces/Monad.md)
-
-### Type Aliases
-
-- [AnyParameters](modules.md#anyparameters)
-- [Either](modules.md#either)
-- [Identity](modules.md#identity)
-- [Maybe](modules.md#maybe)
-- [MaybePromise](modules.md#maybepromise)
-- [MaybePromiseLike](modules.md#maybepromiselike)
-- [Nullable](modules.md#nullable)
-- [Pair](modules.md#pair)
-- [SerializedEither](modules.md#serializedeither)
-- [SerializedMaybe](modules.md#serializedmaybe)
-
-### Variables
-
-- [Either](modules.md#either-1)
-- [Identity](modules.md#identity-1)
-- [Maybe](modules.md#maybe-1)
-
-### Functions
-
-- [bind](modules.md#bind)
-- [combine](modules.md#combine)
-- [identity](modules.md#identity-2)
-- [noop](modules.md#noop)
-- [throwValue](modules.md#throwvalue)
-- [unwrap](modules.md#unwrap)
-
-## Type Aliases
-
-### AnyParameters
-
-Ƭ **AnyParameters**: readonly `unknown`[]
-
-#### Defined in
-
-dist/types.d.ts:5
-
-___
-
-### Either
-
-Ƭ **Either**\<`L`, `R`\>: [`Either`](modules/internal_.md#either)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-#### Defined in
-
-dist/index.d.ts:2
-
-dist/index.d.ts:7
-
-___
-
-### Identity
-
-Ƭ **Identity**\<`T`\>: [`Identity`](classes/internal_.Identity.md)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/index.d.ts:380
-
-dist/index.d.ts:381
-
-___
-
-### Maybe
-
-Ƭ **Maybe**\<`T`\>: [`Maybe`](modules/internal_.md#maybe)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/index.d.ts:211
-
-dist/index.d.ts:216
-
-___
-
-### MaybePromise
-
-Ƭ **MaybePromise**\<`T`\>: `T` \| `Promise`\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/types.d.ts:1
-
-___
-
-### MaybePromiseLike
-
-Ƭ **MaybePromiseLike**\<`T`\>: `T` \| `PromiseLike`\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/types.d.ts:2
-
-___
-
-### Nullable
-
-Ƭ **Nullable**\<`T`\>: `T` \| ``null`` \| `undefined`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/types.d.ts:3
-
-___
-
-### Pair
-
-Ƭ **Pair**\<`A`, `B`\>: [first: A, second: B]
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-
-#### Defined in
-
-dist/types.d.ts:4
-
-___
-
-### SerializedEither
-
-Ƭ **SerializedEither**\<`L`, `R`\>: [`SerializedEither`](modules/internal_.md#serializedeither)\<`L`, `R`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `L` |
-| `R` |
-
-#### Defined in
-
-dist/index.d.ts:3
-
-___
-
-### SerializedMaybe
-
-Ƭ **SerializedMaybe**\<`T`\>: [`SerializedMaybe`](modules/internal_.md#serializedmaybe)\<`T`\>
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Defined in
-
-dist/index.d.ts:212
-
-## Variables
-
-### Either
-
-• **Either**: `Readonly`\<\{ `aggregateError`: \(`values`: [`Either`](modules/internal_.md#either)\<`T`, `unknown`\>[], `message`: `undefined` \| `string` \| (`lefts`: `T`[]) => `undefined` \| `string`) => `AggregateError` \| `undefined` ; `catch`: \(`method`: () => [`Either`](modules/internal_.md#either)\<`L`, `R`\>) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `catchAsync`: \(`method`: () => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Either`](modules/internal_.md#either)\<`L`, `R`\>\>) => `Promise`\<[`Either`](modules/internal_.md#either)\<`L`, `R`\>\> ; `chain`: \(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Either`](modules/internal_.md#either)\<`never`, `NR`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](modules/internal_.md#either)\<`L`, `NR`\>\>\(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Either`](modules/internal_.md#either)\<`NL`, `never`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](modules/internal_.md#either)\<`NL` \| `L`, `R`\>\>\(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Either`](modules/internal_.md#either)\<`NL`, `NR`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](modules/internal_.md#either)\<`NL` \| `L`, `NR`\>\> ; `from`: \(`right`: `R`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `fromJSON`: \(`serialized`: [`SerializedEither`](modules/internal_.md#serializedeither)\<`L`, `R`\>) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `fromMaybe`: \(`maybe`: [`Maybe`](modules/internal_.md#maybe)\<`R`\>, `leftValue`: `L`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `fromPromise`: \(`promise`: [`MaybePromiseLike`](modules.md#maybepromiselike)\<`T`\>) => `Promise`\<[`Either`](modules/internal_.md#either)\<`L`, `T`\>\> ; `fromPromiseSettledResult`: \(`result`: `PromiseSettledResult`\<`T`\>) => [`Either`](modules/internal_.md#either)\<`L`, `T`\> ; `fromTry`: \(`callback`: () => `T`) => [`Either`](modules/internal_.md#either)\<`L`, `T`\> ; `fromTryAsync`: \(`callback`: () => [`MaybePromiseLike`](modules.md#maybepromiselike)\<`T`\>) => `Promise`\<[`Either`](modules/internal_.md#either)\<`L`, `T`\>\> ; `isEither`: \(`value`: `unknown`) => value is Either\ ; `isLeft`: \(`value`: `unknown`) => value is Object ; `isRight`: \(`value`: `unknown`) => value is Object ; `left`: \(`value`: `L`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `merge`: \(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>]) => [`Either`](modules/internal_.md#either)\<`L1`, [`R1`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>, [`Either`](modules/internal_.md#either)\<`L6`, `R6`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>[]) => [`Either`](modules/internal_.md#either)\<`L`, `R`[]\> ; `mergeInMany`: \(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>]) => [`Either`](modules/internal_.md#either)\<`L1`[], [`R1`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>]) => [`Either`](modules/internal_.md#either)\<(`L1` \| `L2`)[], [`R1`, `R2`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>]) => [`Either`](modules/internal_.md#either)\<(`L1` \| `L2` \| `L3`)[], [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>]) => [`Either`](modules/internal_.md#either)\<(`L1` \| `L2` \| `L3` \| `L4`)[], [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>]) => [`Either`](modules/internal_.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5`)[], [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>, [`Either`](modules/internal_.md#either)\<`L6`, `R6`\>]) => [`Either`](modules/internal_.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`)[], [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>[]) => [`Either`](modules/internal_.md#either)\<`L`[], `R`[]\> ; `mergeInOne`: \(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>]) => [`Either`](modules/internal_.md#either)\<`L1`, [`R1`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](modules/internal_.md#either)\<`L1`, `R1`\>, [`Either`](modules/internal_.md#either)\<`L2`, `R2`\>, [`Either`](modules/internal_.md#either)\<`L3`, `R3`\>, [`Either`](modules/internal_.md#either)\<`L4`, `R4`\>, [`Either`](modules/internal_.md#either)\<`L5`, `R5`\>, [`Either`](modules/internal_.md#either)\<`L6`, `R6`\>]) => [`Either`](modules/internal_.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](modules/internal_.md#either)\<`L`, `R`\>[]) => [`Either`](modules/internal_.md#either)\<`L`, `R`[]\> ; `right`: \(`right`: `R`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `wrap`: \(`method`: (...`parameters`: `P`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\>) => (`this`: `any`, ...`parameters`: `P`) => [`Either`](modules/internal_.md#either)\<`L`, `R`\> ; `wrapAsync`: \(`method`: (...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Either`](modules/internal_.md#either)\<`L`, `R`\>\>) => (`this`: `any`, ...`parameters`: `P`) => `Promise`\<[`Either`](modules/internal_.md#either)\<`L`, `R`\>\> }\>
-
-**`Deprecated`**
-
-This is created only for compatibility with old nodejs. This is not tree-shakable. Prefer importing from `monads-io/either`
-
-#### Defined in
-
-dist/index.d.ts:2
-
-dist/index.d.ts:7
-
-___
-
-### Identity
-
-• **Identity**: `Readonly`\<\{ `chain`: \(`map`: (`value`: `A`, ...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Identity`](classes/internal_.Identity.md)\<`B`\>\>, ...`parameters`: `P`) => (`either`: [`Identity`](classes/internal_.Identity.md)\<`A`\>) => `Promise`\<[`Identity`](classes/internal_.Identity.md)\<`B`\>\> ; `from`: \(`value`: `T`) => [`Identity`](classes/internal_.Identity.md)\<`T`\> ; `isIdentity`: \(`value`: `unknown`) => value is Identity\ ; `merge`: \(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`]\>\(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>, [`Identity`](classes/internal_.Identity.md)\<`V2`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`, `V2`]\>\(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>, [`Identity`](classes/internal_.Identity.md)\<`V2`\>, [`Identity`](classes/internal_.Identity.md)\<`V3`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`, `V2`, `V3`]\>\(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>, [`Identity`](classes/internal_.Identity.md)\<`V2`\>, [`Identity`](classes/internal_.Identity.md)\<`V3`\>, [`Identity`](classes/internal_.Identity.md)\<`V4`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`, `V2`, `V3`, `V4`]\>\(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>, [`Identity`](classes/internal_.Identity.md)\<`V2`\>, [`Identity`](classes/internal_.Identity.md)\<`V3`\>, [`Identity`](classes/internal_.Identity.md)\<`V4`\>, [`Identity`](classes/internal_.Identity.md)\<`V5`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`]\>\(`values`: [[`Identity`](classes/internal_.Identity.md)\<`V1`\>, [`Identity`](classes/internal_.Identity.md)\<`V2`\>, [`Identity`](classes/internal_.Identity.md)\<`V3`\>, [`Identity`](classes/internal_.Identity.md)\<`V4`\>, [`Identity`](classes/internal_.Identity.md)\<`V5`\>, [`Identity`](classes/internal_.Identity.md)\<`V6`\>]) => [`Identity`](classes/internal_.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`, `V6`]\>\(`values`: [`Identity`](classes/internal_.Identity.md)\<`T`\>[]) => [`Identity`](classes/internal_.Identity.md)\<`T`[]\> }\>
-
-#### Defined in
-
-dist/index.d.ts:380
-
-dist/index.d.ts:381
-
-___
-
-### Maybe
-
-• **Maybe**: `Readonly`\<\{ `asyncIterator`: \(`callback`: () => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Maybe`](modules/internal_.md#maybe)\<[`MaybePromiseLike`](modules.md#maybepromiselike)\<`T`\>\>\>) => `AsyncGenerator`\<`T`, `void`, `void`\> ; `chain`: \(`map`: (`v`: `A`, ...`parameters`: `P`) => [`MaybePromiseLike`](modules.md#maybepromiselike)\<[`Maybe`](modules/internal_.md#maybe)\<`B`\>\>, ...`parameters`: `P`) => (`maybe`: [`Maybe`](modules/internal_.md#maybe)\<`A`\>) => `Promise`\<[`Maybe`](modules/internal_.md#maybe)\<`B`\>\> ; `filterMap`: \(`iterable`: `Iterable`\<`A`\>, `filterMap`: (`value`: `A`, `index`: `number`) => [`Maybe`](modules/internal_.md#maybe)\<`B`\>) => `Generator`\<`B`, `void`, `void`\> ; `from`: \(`value`: `T`) => [`Maybe`](modules/internal_.md#maybe)\<`T`\> ; `fromEitherLeft`: \(`either`: [`Either`](modules/internal_.md#either)\<`L`, `unknown`\>) => [`Maybe`](modules/internal_.md#maybe)\<`L`\> ; `fromEitherRight`: \(`either`: [`Either`](modules/internal_.md#either)\<`unknown`, `R`\>) => [`Maybe`](modules/internal_.md#maybe)\<`R`\> ; `fromJSON`: \(`serialized`: [`SerializedMaybe`](modules/internal_.md#serializedmaybe)\<`T`\>) => [`Maybe`](modules/internal_.md#maybe)\<`T`\> ; `fromNullable`: \(`value`: [`Nullable`](modules.md#nullable)\<`T`\>) => [`Maybe`](modules/internal_.md#maybe)\<`T`\> ; `isJust`: \(`value`: `unknown`) => value is Object ; `isMaybe`: \(`value`: `unknown`) => value is Maybe\ ; `isNone`: \(`value`: `unknown`) => value is Object ; `iterator`: \(`callback`: () => [`Maybe`](modules/internal_.md#maybe)\<`T`\>) => `Generator`\<`T`, `void`, `void`\> ; `just`: \(`value`: `T`) => [`Maybe`](modules/internal_.md#maybe)\<`T`\> ; `merge`: \(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`]\>\(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>, [`Maybe`](modules/internal_.md#maybe)\<`V2`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`, `V2`]\>\(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>, [`Maybe`](modules/internal_.md#maybe)\<`V2`\>, [`Maybe`](modules/internal_.md#maybe)\<`V3`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`, `V2`, `V3`]\>\(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>, [`Maybe`](modules/internal_.md#maybe)\<`V2`\>, [`Maybe`](modules/internal_.md#maybe)\<`V3`\>, [`Maybe`](modules/internal_.md#maybe)\<`V4`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`, `V2`, `V3`, `V4`]\>\(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>, [`Maybe`](modules/internal_.md#maybe)\<`V2`\>, [`Maybe`](modules/internal_.md#maybe)\<`V3`\>, [`Maybe`](modules/internal_.md#maybe)\<`V4`\>, [`Maybe`](modules/internal_.md#maybe)\<`V5`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`, `V2`, `V3`, `V4`, `V5`]\>\(`values`: [[`Maybe`](modules/internal_.md#maybe)\<`V1`\>, [`Maybe`](modules/internal_.md#maybe)\<`V2`\>, [`Maybe`](modules/internal_.md#maybe)\<`V3`\>, [`Maybe`](modules/internal_.md#maybe)\<`V4`\>, [`Maybe`](modules/internal_.md#maybe)\<`V5`\>, [`Maybe`](modules/internal_.md#maybe)\<`V6`\>]) => [`Maybe`](modules/internal_.md#maybe)\<[`V1`, `V2`, `V3`, `V4`, `V5`, `V6`]\>\(`values`: [`Maybe`](modules/internal_.md#maybe)\<`T`\>[]) => [`Maybe`](modules/internal_.md#maybe)\<`T`[]\> ; `none`: \() => [`Maybe`](modules/internal_.md#maybe)\<`T`\> }\>
-
-**`Deprecated`**
-
-This is created only for compatibility with old nodejs. This is not tree-shakable. Prefer importing from `monads-io/maybe`
-
-#### Defined in
-
-dist/index.d.ts:211
-
-dist/index.d.ts:216
-
-## Functions
-
-### bind
-
-▸ **bind**\<`A`, `B`, `P`\>(`map`, `parameters`): (`input`: `A`) => `B`
-
-Binds parameters to mapper function
-
-#### Type parameters
-
-| Name | Type |
-| :------ | :------ |
-| `A` | `A` |
-| `B` | `B` |
-| `P` | extends [`AnyParameters`](modules.md#anyparameters) |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map` | (`value`: `A`, ...`parameters`: `P`) => `B` |
-| `parameters` | `P` |
-
-#### Returns
-
-`fn`
-
-▸ (`input`): `B`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `input` | `A` |
-
-##### Returns
-
-`B`
-
-**`Export`**
-
-#### Defined in
-
-dist/runtime.d.ts:33
-
-___
-
-### combine
-
-▸ **combine**\<`A`, `B`, `C`\>(`map1`, `map2`): (`value`: `A`) => `C`
-
-returns `map2(map1(value))`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `A` |
-| `B` |
-| `C` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `map1` | (`value`: `A`) => `B` |
-| `map2` | (`value`: `B`) => `C` |
-
-#### Returns
-
-`fn`
-
-▸ (`value`): `C`
-
-##### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `A` |
-
-##### Returns
-
-`C`
-
-**`Export`**
-
-#### Defined in
-
-dist/runtime.d.ts:46
-
-___
-
-### identity
-
-▸ **identity**\<`T`\>(`value`): `T`
-
-Returns input
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `T` |
-
-#### Returns
-
-`T`
-
-**`Export`**
-
-#### Defined in
-
-dist/runtime.d.ts:15
-
-___
-
-### noop
-
-▸ **noop**(): `undefined`
-
-Do nothing, return `undefined`
-
-#### Returns
-
-`undefined`
-
-**`Export`**
-
-#### Defined in
-
-dist/runtime.d.ts:7
-
-___
-
-### throwValue
-
-▸ **throwValue**(`value`): `never`
-
-Throws input
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `value` | `unknown` |
-
-#### Returns
-
-`never`
-
-**`Export`**
-
-#### Defined in
-
-dist/runtime.d.ts:21
-
-___
-
-### unwrap
-
-▸ **unwrap**\<`T`\>(`container`): `T`
-
-#### Type parameters
-
-| Name |
-| :------ |
-| `T` |
-
-#### Parameters
-
-| Name | Type |
-| :------ | :------ |
-| `container` | [`Container`](interfaces/Container.md)\<`T`\> |
-
-#### Returns
-
-`T`
-
-#### Defined in
-
-dist/runtime.d.ts:47
+- [either](modules/either.md)
+- [identity](modules/identity.md)
+- [index](modules/index.md)
+- [maybe](modules/maybe.md)
+- [types](modules/types.md)
diff --git a/docs/api/modules/either._internal_.md b/docs/api/modules/either._internal_.md
new file mode 100644
index 0000000..ac5adc2
--- /dev/null
+++ b/docs/api/modules/either._internal_.md
@@ -0,0 +1,144 @@
+[Package](../README.md) / [Modules](../modules.md) / [either](either.md) / \
+
+# Module: \
+
+## Table of contents
+
+### Classes
+
+- [EitherConstructor](../classes/either._internal_.EitherConstructor.md)
+- [Left](../classes/either._internal_.Left.md)
+- [Right](../classes/either._internal_.Right.md)
+
+### Type Aliases
+
+- [LegacyMethodDecorator](either._internal_.md#legacymethoddecorator)
+- [MapCaught](either._internal_.md#mapcaught)
+- [ModernMethodDecorator](either._internal_.md#modernmethoddecorator)
+- [SerializedLeft](either._internal_.md#serializedleft)
+- [SerializedRight](either._internal_.md#serializedright)
+
+### Variables
+
+- [name](either._internal_.md#name)
+
+## Type Aliases
+
+### LegacyMethodDecorator
+
+Ƭ **LegacyMethodDecorator**: (`target`: `CallableFunction`, `property`: `any`, `descriptor`: `PropertyDescriptor`) => `void`
+
+#### Type declaration
+
+▸ (`target`, `property`, `descriptor`): `void`
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `target` | `CallableFunction` |
+| `property` | `any` |
+| `descriptor` | `PropertyDescriptor` |
+
+##### Returns
+
+`void`
+
+#### Defined in
+
+dist/either.d.ts:168
+
+___
+
+### MapCaught
+
+Ƭ **MapCaught**\<`L`\>: [`Mapper`](types.md#mapper)\<`unknown`, `L`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+
+#### Defined in
+
+dist/either.d.ts:167
+
+___
+
+### ModernMethodDecorator
+
+Ƭ **ModernMethodDecorator**\<`R`\>: \(`method`: `T`, `context`: `any`) => `T`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `R` | `unknown` |
+
+#### Type declaration
+
+▸ \<`T`\>(`method`, `context`): `T`
+
+##### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | extends (...`parameters`: [`AnyParameters`](index.md#anyparameters)) => `R` |
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `method` | `T` |
+| `context` | `any` |
+
+##### Returns
+
+`T`
+
+#### Defined in
+
+dist/either.d.ts:169
+
+___
+
+### SerializedLeft
+
+Ƭ **SerializedLeft**\<`L`\>: `Readonly`\<\{ `left`: `L` ; `name`: typeof [`name`](either._internal_.md#name) ; `type`: [`Left`](../enums/either.EitherType.md#left) }\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+
+#### Defined in
+
+dist/either.d.ts:69
+
+___
+
+### SerializedRight
+
+Ƭ **SerializedRight**\<`R`\>: `Readonly`\<\{ `name`: typeof [`name`](either._internal_.md#name) ; `right`: `R` ; `type`: [`Right`](../enums/either.EitherType.md#right) }\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `R` |
+
+#### Defined in
+
+dist/either.d.ts:92
+
+## Variables
+
+### name
+
+• `Const` **name**: ``"Either"``
+
+#### Defined in
+
+dist/either.d.ts:6
diff --git a/docs/api/modules/either.md b/docs/api/modules/either.md
new file mode 100644
index 0000000..fcd41e4
--- /dev/null
+++ b/docs/api/modules/either.md
@@ -0,0 +1,1318 @@
+[Package](../README.md) / [Modules](../modules.md) / either
+
+# Module: either
+
+## Table of contents
+
+### References
+
+- [fromMaybe](either.md#frommaybe)
+
+### Modules
+
+- [\](either._internal_.md)
+
+### Enumerations
+
+- [EitherType](../enums/either.EitherType.md)
+
+### Type Aliases
+
+- [Either](either.md#either)
+- [SerializedEither](either.md#serializedeither)
+
+### Functions
+
+- [Decorate](either.md#decorate)
+- [DecorateAsync](either.md#decorateasync)
+- [DecorateAsyncLegacy](either.md#decorateasynclegacy)
+- [DecorateLegacy](either.md#decoratelegacy)
+- [aggregateError](either.md#aggregateerror)
+- [catchAsync](either.md#catchasync)
+- [catchSync](either.md#catchsync)
+- [chain](either.md#chain)
+- [from](either.md#from)
+- [fromJSON](either.md#fromjson)
+- [fromPromise](either.md#frompromise)
+- [fromPromiseSettledResult](either.md#frompromisesettledresult)
+- [fromTry](either.md#fromtry)
+- [fromTryAsync](either.md#fromtryasync)
+- [isEither](either.md#iseither)
+- [isLeft](either.md#isleft)
+- [isRight](either.md#isright)
+- [left](either.md#left)
+- [merge](either.md#merge)
+- [mergeInMany](either.md#mergeinmany)
+- [mergeInOne](either.md#mergeinone)
+- [right](either.md#right)
+- [wrap](either.md#wrap)
+- [wrapAsync](either.md#wrapasync)
+
+## References
+
+### fromMaybe
+
+Renames and re-exports [__type](undefined)
+
+## Type Aliases
+
+### Either
+
+Ƭ **Either**\<`L`, `R`\>: [`Right`](../classes/either._internal_.Right.md)\<`L`, `R`\> \| [`Left`](../classes/either._internal_.Left.md)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `unknown` |
+| `R` | `unknown` |
+
+#### Defined in
+
+dist/either.d.ts:115
+
+___
+
+### SerializedEither
+
+Ƭ **SerializedEither**\<`L`, `R`\>: [`SerializedRight`](either._internal_.md#serializedright)\<`R`\> \| [`SerializedLeft`](either._internal_.md#serializedleft)\<`L`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Defined in
+
+dist/either.d.ts:116
+
+## Functions
+
+### Decorate
+
+▸ **Decorate**(): [`ModernMethodDecorator`](either._internal_.md#modernmethoddecorator)\<[`Either`](either.md#either)\>
+
+#### Returns
+
+[`ModernMethodDecorator`](either._internal_.md#modernmethoddecorator)\<[`Either`](either.md#either)\>
+
+#### Defined in
+
+dist/either.d.ts:172
+
+___
+
+### DecorateAsync
+
+▸ **DecorateAsync**(): [`ModernMethodDecorator`](either._internal_.md#modernmethoddecorator)\<`Promise`\<[`Either`](either.md#either)\>\>
+
+#### Returns
+
+[`ModernMethodDecorator`](either._internal_.md#modernmethoddecorator)\<`Promise`\<[`Either`](either.md#either)\>\>
+
+#### Defined in
+
+dist/either.d.ts:173
+
+___
+
+### DecorateAsyncLegacy
+
+▸ **DecorateAsyncLegacy**(): [`LegacyMethodDecorator`](either._internal_.md#legacymethoddecorator)
+
+#### Returns
+
+[`LegacyMethodDecorator`](either._internal_.md#legacymethoddecorator)
+
+#### Defined in
+
+dist/either.d.ts:171
+
+___
+
+### DecorateLegacy
+
+▸ **DecorateLegacy**(): [`LegacyMethodDecorator`](either._internal_.md#legacymethoddecorator)
+
+#### Returns
+
+[`LegacyMethodDecorator`](either._internal_.md#legacymethoddecorator)
+
+#### Defined in
+
+dist/either.d.ts:170
+
+___
+
+### aggregateError
+
+▸ **aggregateError**\<`T`\>(`values`, `message`): `AggregateError` \| `undefined`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [`Either`](either.md#either)\<`T`, `unknown`\>[] |
+| `message` | `undefined` \| `string` \| (`lefts`: `T`[]) => `undefined` \| `string` |
+
+#### Returns
+
+`AggregateError` \| `undefined`
+
+#### Defined in
+
+dist/either.d.ts:166
+
+___
+
+### catchAsync
+
+▸ **catchAsync**\<`L`, `R`\>(`method`, `mapCaught?`): `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `method` | () => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`L`, `R`\>\> |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Defined in
+
+dist/either.d.ts:177
+
+___
+
+### catchSync
+
+▸ **catchSync**\<`L`, `R`\>(`method`, `mapCaught?`): [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `method` | () => [`Either`](either.md#either)\<`L`, `R`\> |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:176
+
+___
+
+### chain
+
+▸ **chain**\<`L`, `R`, `NR`, `P`\>(`map`, `...parameters`): (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`L`, `NR`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `R` |
+| `NR` | `NR` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`never`, `NR`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`fn`
+
+▸ (`either`, `...parameters`): `Promise`\<[`Either`](either.md#either)\<`L`, `NR`\>\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](either.md#either)\<`L`, `R`\> |
+| `...parameters` | `P` |
+
+##### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`L`, `NR`\>\>
+
+#### Defined in
+
+dist/either.d.ts:120
+
+▸ **chain**\<`L`, `R`, `NL`, `P`\>(`map`, `...parameters`): (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `R`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `R` |
+| `NL` | `NL` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`NL`, `never`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`fn`
+
+▸ (`either`, `...parameters`): `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `R`\>\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](either.md#either)\<`L`, `R`\> |
+| `...parameters` | `P` |
+
+##### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `R`\>\>
+
+#### Defined in
+
+dist/either.d.ts:121
+
+▸ **chain**\<`L`, `R`, `NL`, `NR`, `P`\>(`map`, `...parameters`): (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `NR`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `R` |
+| `NL` | `NL` |
+| `NR` | `NR` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`NL`, `NR`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`fn`
+
+▸ (`either`, `...parameters`): `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `NR`\>\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Either`](either.md#either)\<`L`, `R`\> |
+| `...parameters` | `P` |
+
+##### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `NR`\>\>
+
+#### Defined in
+
+dist/either.d.ts:122
+
+___
+
+### from
+
+▸ **from**\<`L`, `R`\>(`right`): [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `never` |
+| `R` | `never` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `right` | `R` |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:7
+
+___
+
+### fromJSON
+
+▸ **fromJSON**\<`L`, `R`\>(`serialized`): [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `serialized` | [`SerializedEither`](either.md#serializedeither)\<`L`, `R`\> |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:123
+
+___
+
+### fromPromise
+
+▸ **fromPromise**\<`L`, `T`\>(`promise`, `mapCaught?`): `Promise`\<[`Either`](either.md#either)\<`L`, `T`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `promise` | [`MaybePromiseLike`](index.md#maybepromiselike)\<`T`\> |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`L`, `T`\>\>
+
+#### Defined in
+
+dist/either.d.ts:178
+
+___
+
+### fromPromiseSettledResult
+
+▸ **fromPromiseSettledResult**\<`L`, `T`\>(`result`): [`Either`](either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `result` | `PromiseSettledResult`\<`T`\> |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `T`\>
+
+#### Defined in
+
+dist/either.d.ts:181
+
+___
+
+### fromTry
+
+▸ **fromTry**\<`L`, `T`\>(`callback`, `mapCaught?`): [`Either`](either.md#either)\<`L`, `T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | () => `T` |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `T`\>
+
+#### Defined in
+
+dist/either.d.ts:179
+
+___
+
+### fromTryAsync
+
+▸ **fromTryAsync**\<`L`, `R`\>(`callback`, `mapCaught?`): `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `callback` | () => [`MaybePromiseLike`](index.md#maybepromiselike)\<`R`\> |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Defined in
+
+dist/either.d.ts:180
+
+___
+
+### isEither
+
+▸ **isEither**\<`L`, `R`\>(`value`): value is Either\
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `unknown` |
+
+#### Returns
+
+value is Either\
+
+#### Defined in
+
+dist/either.d.ts:119
+
+___
+
+### isLeft
+
+▸ **isLeft**\<`L`, `R`\>(`value`): value is Left\
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `unknown` |
+
+#### Returns
+
+value is Left\
+
+#### Defined in
+
+dist/either.d.ts:117
+
+___
+
+### isRight
+
+▸ **isRight**\<`L`, `R`\>(`value`): value is Right\
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `unknown` |
+
+#### Returns
+
+value is Right\
+
+#### Defined in
+
+dist/either.d.ts:118
+
+___
+
+### left
+
+▸ **left**\<`L`, `R`\>(`value`): [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `never` |
+| `R` | `never` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `L` |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:8
+
+___
+
+### merge
+
+▸ **merge**\<`L1`, `R1`\>(`values`): [`Either`](either.md#either)\<`L1`, [`R1`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1`, [`R1`]\>
+
+#### Defined in
+
+dist/either.d.ts:124
+
+▸ **merge**\<`L1`, `R1`, `L2`, `R2`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>
+
+#### Defined in
+
+dist/either.d.ts:125
+
+▸ **merge**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>
+
+#### Defined in
+
+dist/either.d.ts:126
+
+▸ **merge**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Defined in
+
+dist/either.d.ts:127
+
+▸ **merge**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Defined in
+
+dist/either.d.ts:128
+
+▸ **merge**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`, `L6`, `R6`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+| `L6` |
+| `R6` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Defined in
+
+dist/either.d.ts:135
+
+▸ **merge**\<`L`, `R`\>(`values`): [`Either`](either.md#either)\<`L`, `R`[]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [`Either`](either.md#either)\<`L`, `R`\>[] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`[]\>
+
+#### Defined in
+
+dist/either.d.ts:143
+
+___
+
+### mergeInMany
+
+▸ **mergeInMany**\<`L1`, `R1`\>(`values`): [`Either`](either.md#either)\<`L1`[], [`R1`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1`[], [`R1`]\>
+
+#### Defined in
+
+dist/either.d.ts:146
+
+▸ **mergeInMany**\<`L1`, `R1`, `L2`, `R2`\>(`values`): [`Either`](either.md#either)\<(`L1` \| `L2`)[], [`R1`, `R2`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<(`L1` \| `L2`)[], [`R1`, `R2`]\>
+
+#### Defined in
+
+dist/either.d.ts:147
+
+▸ **mergeInMany**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`\>(`values`): [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3`)[], [`R1`, `R2`, `R3`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<(`L1` \| `L2` \| `L3`)[], [`R1`, `R2`, `R3`]\>
+
+#### Defined in
+
+dist/either.d.ts:148
+
+▸ **mergeInMany**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`\>(`values`): [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4`)[], [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4`)[], [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Defined in
+
+dist/either.d.ts:149
+
+▸ **mergeInMany**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`\>(`values`): [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5`)[], [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5`)[], [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Defined in
+
+dist/either.d.ts:150
+
+▸ **mergeInMany**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`, `L6`, `R6`\>(`values`): [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`)[], [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+| `L6` |
+| `R6` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`)[], [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Defined in
+
+dist/either.d.ts:157
+
+▸ **mergeInMany**\<`L`, `R`\>(`values`): [`Either`](either.md#either)\<`L`[], `R`[]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [`Either`](either.md#either)\<`L`, `R`\>[] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`[], `R`[]\>
+
+#### Defined in
+
+dist/either.d.ts:165
+
+___
+
+### mergeInOne
+
+▸ **mergeInOne**\<`L1`, `R1`\>(`values`): [`Either`](either.md#either)\<`L1`, [`R1`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1`, [`R1`]\>
+
+#### Defined in
+
+dist/either.d.ts:124
+
+▸ **mergeInOne**\<`L1`, `R1`, `L2`, `R2`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>
+
+#### Defined in
+
+dist/either.d.ts:125
+
+▸ **mergeInOne**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>
+
+#### Defined in
+
+dist/either.d.ts:126
+
+▸ **mergeInOne**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>
+
+#### Defined in
+
+dist/either.d.ts:127
+
+▸ **mergeInOne**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>
+
+#### Defined in
+
+dist/either.d.ts:128
+
+▸ **mergeInOne**\<`L1`, `R1`, `L2`, `R2`, `L3`, `R3`, `L4`, `R4`, `L5`, `R5`, `L6`, `R6`\>(`values`): [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L1` |
+| `R1` |
+| `L2` |
+| `R2` |
+| `L3` |
+| `R3` |
+| `L4` |
+| `R4` |
+| `L5` |
+| `R5` |
+| `L6` |
+| `R6` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>
+
+#### Defined in
+
+dist/either.d.ts:135
+
+▸ **mergeInOne**\<`L`, `R`\>(`values`): [`Either`](either.md#either)\<`L`, `R`[]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [`Either`](either.md#either)\<`L`, `R`\>[] |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`[]\>
+
+#### Defined in
+
+dist/either.d.ts:143
+
+___
+
+### right
+
+▸ **right**\<`L`, `R`\>(`right`): [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `never` |
+| `R` | `never` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `right` | `R` |
+
+#### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:7
+
+___
+
+### wrap
+
+▸ **wrap**\<`L`, `R`, `P`\>(`method`, `mapCaught?`): (`this`: `any`, ...`parameters`: `P`) => [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `R` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `method` | (...`parameters`: `P`) => [`Either`](either.md#either)\<`L`, `R`\> |
+| `mapCaught?` | [`MapCaught`](either._internal_.md#mapcaught)\<`L`\> |
+
+#### Returns
+
+`fn`
+
+▸ (`this`, `...parameters`): [`Either`](either.md#either)\<`L`, `R`\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | `any` |
+| `...parameters` | `P` |
+
+##### Returns
+
+[`Either`](either.md#either)\<`L`, `R`\>
+
+#### Defined in
+
+dist/either.d.ts:174
+
+___
+
+### wrapAsync
+
+▸ **wrapAsync**\<`L`, `R`, `P`\>(`method`): (`this`: `any`, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `L` | `L` |
+| `R` | `R` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `method` | (...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`L`, `R`\>\> |
+
+#### Returns
+
+`fn`
+
+▸ (`this`, `...parameters`): `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `this` | `any` |
+| `...parameters` | `P` |
+
+##### Returns
+
+`Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\>
+
+#### Defined in
+
+dist/either.d.ts:175
diff --git a/docs/api/modules/identity.md b/docs/api/modules/identity.md
new file mode 100644
index 0000000..e17c21f
--- /dev/null
+++ b/docs/api/modules/identity.md
@@ -0,0 +1,282 @@
+[Package](../README.md) / [Modules](../modules.md) / identity
+
+# Module: identity
+
+## Table of contents
+
+### Classes
+
+- [Identity](../classes/identity.Identity.md)
+
+### Functions
+
+- [chain](identity.md#chain)
+- [from](identity.md#from)
+- [isIdentity](identity.md#isidentity)
+- [merge](identity.md#merge)
+
+## Functions
+
+### chain
+
+▸ **chain**\<`A`, `B`, `P`\>(`map`, `...parameters`): (`either`: [`Identity`](../classes/identity.Identity.md)\<`A`\>) => `Promise`\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | `never` |
+| `B` | `never` |
+| `P` | extends [`AnyParameters`](index.md#anyparameters) = [] |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `map` | (`value`: `A`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\> |
+| `...parameters` | `P` |
+
+#### Returns
+
+`fn`
+
+▸ (`either`): `Promise`\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\>
+
+##### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `either` | [`Identity`](../classes/identity.Identity.md)\<`A`\> |
+
+##### Returns
+
+`Promise`\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\>
+
+#### Defined in
+
+dist/identity.d.ts:30
+
+___
+
+### from
+
+▸ **from**\<`T`\>(`value`): [`Identity`](../classes/identity.Identity.md)\<`T`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `never` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `T` |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<`T`\>
+
+#### Defined in
+
+dist/identity.d.ts:5
+
+___
+
+### isIdentity
+
+▸ **isIdentity**\<`T`\>(`value`): value is Identity\
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `value` | `unknown` |
+
+#### Returns
+
+value is Identity\
+
+#### Defined in
+
+dist/identity.d.ts:29
+
+___
+
+### merge
+
+▸ **merge**\<`V1`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`]\>
+
+#### Defined in
+
+dist/identity.d.ts:31
+
+▸ **merge**\<`V1`, `V2`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+| `V2` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`]\>
+
+#### Defined in
+
+dist/identity.d.ts:32
+
+▸ **merge**\<`V1`, `V2`, `V3`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+| `V2` |
+| `V3` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`]\>
+
+#### Defined in
+
+dist/identity.d.ts:33
+
+▸ **merge**\<`V1`, `V2`, `V3`, `V4`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+| `V2` |
+| `V3` |
+| `V4` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`]\>
+
+#### Defined in
+
+dist/identity.d.ts:34
+
+▸ **merge**\<`V1`, `V2`, `V3`, `V4`, `V5`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+| `V2` |
+| `V3` |
+| `V4` |
+| `V5` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>, [`Identity`](../classes/identity.Identity.md)\<`V5`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`]\>
+
+#### Defined in
+
+dist/identity.d.ts:35
+
+▸ **merge**\<`V1`, `V2`, `V3`, `V4`, `V5`, `V6`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`, `V6`]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `V1` |
+| `V2` |
+| `V3` |
+| `V4` |
+| `V5` |
+| `V6` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>, [`Identity`](../classes/identity.Identity.md)\<`V5`\>, [`Identity`](../classes/identity.Identity.md)\<`V6`\>] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`, `V6`]\>
+
+#### Defined in
+
+dist/identity.d.ts:36
+
+▸ **merge**\<`T`\>(`values`): [`Identity`](../classes/identity.Identity.md)\<`T`[]\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Parameters
+
+| Name | Type |
+| :------ | :------ |
+| `values` | [`Identity`](../classes/identity.Identity.md)\<`T`\>[] |
+
+#### Returns
+
+[`Identity`](../classes/identity.Identity.md)\<`T`[]\>
+
+#### Defined in
+
+dist/identity.d.ts:44
diff --git a/docs/api/modules/index._internal_.md b/docs/api/modules/index._internal_.md
new file mode 100644
index 0000000..f0108fa
--- /dev/null
+++ b/docs/api/modules/index._internal_.md
@@ -0,0 +1,26 @@
+[Package](../README.md) / [Modules](../modules.md) / [index](index.md) / \
+
+# Module: \
+
+## Table of contents
+
+### Enumerations
+
+- [DecorationErrorMessages](../enums/index._internal_.DecorationErrorMessages.md)
+- [DeserializationErrorMessages](../enums/index._internal_.DeserializationErrorMessages.md)
+- [InvalidStateMessages](../enums/index._internal_.InvalidStateMessages.md)
+- [UnwrapCustomErrorMessages](../enums/index._internal_.UnwrapCustomErrorMessages.md)
+
+### Enumeration Members
+
+- [EXPECTED\_DECORATING\_METHOD](index._internal_.md#expected_decorating_method)
+
+## Enumeration Members
+
+### EXPECTED\_DECORATING\_METHOD
+
+• **EXPECTED\_DECORATING\_METHOD**: ``"Expected decorating method"``
+
+#### Defined in
+
+dist/errors.d.ts:12
diff --git a/docs/api/modules/index.md b/docs/api/modules/index.md
new file mode 100644
index 0000000..5f8ce49
--- /dev/null
+++ b/docs/api/modules/index.md
@@ -0,0 +1,448 @@
+[Package](../README.md) / [Modules](../modules.md) / index
+
+# Module: index
+
+## Table of contents
+
+### Modules
+
+- [\](index._internal_.md)
+
+### Classes
+
+- [DecorationError](../classes/index.DecorationError.md)
+- [DeserializationError](../classes/index.DeserializationError.md)
+- [InvalidStateError](../classes/index.InvalidStateError.md)
+- [UnwrapCustomError](../classes/index.UnwrapCustomError.md)
+
+### Interfaces
+
+- [Alternative](../interfaces/index.Alternative.md)
+- [Applicative](../interfaces/index.Applicative.md)
+- [AsyncMonad](../interfaces/index.AsyncMonad.md)
+- [Container](../interfaces/index.Container.md)
+- [Functor](../interfaces/index.Functor.md)
+- [Monad](../interfaces/index.Monad.md)
+
+### Type Aliases
+
+- [AnyParameters](index.md#anyparameters)
+- [Either](index.md#either)
+- [Identity](index.md#identity)
+- [Maybe](index.md#maybe)
+- [MaybePromise](index.md#maybepromise)
+- [MaybePromiseLike](index.md#maybepromiselike)
+- [Nullable](index.md#nullable)
+- [Pair](index.md#pair)
+- [SerializedEither](index.md#serializedeither)
+- [SerializedMaybe](index.md#serializedmaybe)
+
+### Variables
+
+- [Either](index.md#either-1)
+- [Identity](index.md#identity-1)
+- [Maybe](index.md#maybe-1)
+
+### Functions
+
+- [bind](index.md#bind)
+- [combine](index.md#combine)
+- [identity](index.md#identity-2)
+- [noop](index.md#noop)
+- [throwValue](index.md#throwvalue)
+- [unwrap](index.md#unwrap)
+
+## Type Aliases
+
+### AnyParameters
+
+Ƭ **AnyParameters**: readonly `unknown`[]
+
+#### Defined in
+
+dist/types.d.ts:5
+
+___
+
+### Either
+
+Ƭ **Either**\<`L`, `R`\>: [`Either`](either.md#either)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Defined in
+
+dist/index.d.ts:2
+
+dist/index.d.ts:7
+
+___
+
+### Identity
+
+Ƭ **Identity**\<`T`\>: [`Identity`](../classes/identity.Identity.md)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/index.d.ts:372
+
+dist/index.d.ts:373
+
+___
+
+### Maybe
+
+Ƭ **Maybe**\<`T`\>: [`Maybe`](maybe.md#maybe)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/index.d.ts:203
+
+dist/index.d.ts:208
+
+___
+
+### MaybePromise
+
+Ƭ **MaybePromise**\<`T`\>: `T` \| `Promise`\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/types.d.ts:1
+
+___
+
+### MaybePromiseLike
+
+Ƭ **MaybePromiseLike**\<`T`\>: `T` \| `PromiseLike`\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/types.d.ts:2
+
+___
+
+### Nullable
+
+Ƭ **Nullable**\<`T`\>: `T` \| ``null`` \| `undefined`
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/types.d.ts:3
+
+___
+
+### Pair
+
+Ƭ **Pair**\<`A`, `B`\>: [first: A, second: B]
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `A` |
+| `B` |
+
+#### Defined in
+
+dist/types.d.ts:4
+
+___
+
+### SerializedEither
+
+Ƭ **SerializedEither**\<`L`, `R`\>: [`SerializedEither`](either.md#serializedeither)\<`L`, `R`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `L` |
+| `R` |
+
+#### Defined in
+
+dist/index.d.ts:3
+
+___
+
+### SerializedMaybe
+
+Ƭ **SerializedMaybe**\<`T`\>: [`SerializedMaybe`](maybe.md#serializedmaybe)\<`T`\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+#### Defined in
+
+dist/index.d.ts:204
+
+## Variables
+
+### Either
+
+• **Either**: `Readonly`\<\{ `aggregateError`: \(`values`: [`Either`](either.md#either)\<`T`, `unknown`\>[], `message`: `undefined` \| `string` \| (`lefts`: `T`[]) => `undefined` \| `string`) => `AggregateError` \| `undefined` ; `catch`: \(`method`: () => [`Either`](either.md#either)\<`L`, `R`\>, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => [`Either`](either.md#either)\<`L`, `R`\> ; `catchAsync`: \(`method`: () => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`L`, `R`\>\>, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\> ; `chain`: \(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`never`, `NR`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`L`, `NR`\>\>\(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`NL`, `never`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `R`\>\>\(`map`: (`value`: `R`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`NL`, `NR`\>\>, ...`parameters`: `P`) => (`either`: [`Either`](either.md#either)\<`L`, `R`\>, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`NL` \| `L`, `NR`\>\> ; `from`: \(`right`: `R`) => [`Either`](either.md#either)\<`L`, `R`\> ; `fromJSON`: \(`serialized`: [`SerializedEither`](either.md#serializedeither)\<`L`, `R`\>) => [`Either`](either.md#either)\<`L`, `R`\> ; `fromMaybe`: \(`maybe`: [`Maybe`](maybe.md#maybe)\<`R`\>, `leftValue`: `L`) => [`Either`](either.md#either)\<`L`, `R`\> ; `fromPromise`: \(`promise`: [`MaybePromiseLike`](index.md#maybepromiselike)\<`T`\>, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => `Promise`\<[`Either`](either.md#either)\<`L`, `T`\>\> ; `fromPromiseSettledResult`: \(`result`: `PromiseSettledResult`\<`T`\>) => [`Either`](either.md#either)\<`L`, `T`\> ; `fromTry`: \(`callback`: () => `T`, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => [`Either`](either.md#either)\<`L`, `T`\> ; `fromTryAsync`: \(`callback`: () => [`MaybePromiseLike`](index.md#maybepromiselike)\<`R`\>, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\> ; `isEither`: \(`value`: `unknown`) => value is Either\ ; `isLeft`: \(`value`: `unknown`) => value is Object ; `isRight`: \(`value`: `unknown`) => value is Object ; `left`: \(`value`: `L`) => [`Either`](either.md#either)\<`L`, `R`\> ; `merge`: \(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>]) => [`Either`](either.md#either)\<`L1`, [`R1`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>]) => [`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](either.md#either)\<`L`, `R`\>[]) => [`Either`](either.md#either)\<`L`, `R`[]\> ; `mergeInMany`: \(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>]) => [`Either`](either.md#either)\<`L1`[], [`R1`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>]) => [`Either`](either.md#either)\<(`L1` \| `L2`)[], [`R1`, `R2`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>]) => [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3`)[], [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>]) => [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4`)[], [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>]) => [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5`)[], [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>]) => [`Either`](either.md#either)\<(`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`)[], [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](either.md#either)\<`L`, `R`\>[]) => [`Either`](either.md#either)\<`L`[], `R`[]\> ; `mergeInOne`: \(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>]) => [`Either`](either.md#either)\<`L1`, [`R1`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>]) => [`Either`](either.md#either)\<`L1` \| `L2`, [`R1`, `R2`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3`, [`R1`, `R2`, `R3`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4`, [`R1`, `R2`, `R3`, `R4`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5`, [`R1`, `R2`, `R3`, `R4`, `R5`]\>\(`values`: [[`Either`](either.md#either)\<`L1`, `R1`\>, [`Either`](either.md#either)\<`L2`, `R2`\>, [`Either`](either.md#either)\<`L3`, `R3`\>, [`Either`](either.md#either)\<`L4`, `R4`\>, [`Either`](either.md#either)\<`L5`, `R5`\>, [`Either`](either.md#either)\<`L6`, `R6`\>]) => [`Either`](either.md#either)\<`L1` \| `L2` \| `L3` \| `L4` \| `L5` \| `L6`, [`R1`, `R2`, `R3`, `R4`, `R5`, `R6`]\>\(`values`: [`Either`](either.md#either)\<`L`, `R`\>[]) => [`Either`](either.md#either)\<`L`, `R`[]\> ; `right`: \(`right`: `R`) => [`Either`](either.md#either)\<`L`, `R`\> ; `wrap`: \(`method`: (...`parameters`: `P`) => [`Either`](either.md#either)\<`L`, `R`\>, `mapCaught?`: [`MapCaught`](either._internal_.md#mapcaught)\<`L`\>) => (`this`: `any`, ...`parameters`: `P`) => [`Either`](either.md#either)\<`L`, `R`\> ; `wrapAsync`: \(`method`: (...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Either`](either.md#either)\<`L`, `R`\>\>) => (`this`: `any`, ...`parameters`: `P`) => `Promise`\<[`Either`](either.md#either)\<`L`, `R`\>\> }\>
+
+**`Deprecated`**
+
+This is created only for compatibility with old nodejs. This is not tree-shakable. Prefer importing from `monads-io/either`
+
+#### Defined in
+
+dist/index.d.ts:2
+
+dist/index.d.ts:7
+
+___
+
+### Identity
+
+• **Identity**: `Readonly`\<\{ `chain`: \(`map`: (`value`: `A`, ...`parameters`: `P`) => [`MaybePromiseLike`](index.md#maybepromiselike)\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\>, ...`parameters`: `P`) => (`either`: [`Identity`](../classes/identity.Identity.md)\<`A`\>) => `Promise`\<[`Identity`](../classes/identity.Identity.md)\<`B`\>\> ; `from`: \(`value`: `T`) => [`Identity`](../classes/identity.Identity.md)\<`T`\> ; `isIdentity`: \(`value`: `unknown`) => value is Identity\ ; `merge`: \(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`]\>\(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`]\>\(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`]\>\(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`]\>\(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>, [`Identity`](../classes/identity.Identity.md)\<`V5`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`]\>\(`values`: [[`Identity`](../classes/identity.Identity.md)\<`V1`\>, [`Identity`](../classes/identity.Identity.md)\<`V2`\>, [`Identity`](../classes/identity.Identity.md)\<`V3`\>, [`Identity`](../classes/identity.Identity.md)\<`V4`\>, [`Identity`](../classes/identity.Identity.md)\<`V5`\>, [`Identity`](../classes/identity.Identity.md)\<`V6`\>]) => [`Identity`](../classes/identity.Identity.md)\<[`V1`, `V2`, `V3`, `V4`, `V5`, `V6`]\>\(`values`: [`Identity`](../classes/identity.Identity.md)\<`T`\>[]) => [`Identity`](../classes/identity.Identity.md)\<`T`[]\> }\>
+
+#### Defined in
+
+dist/index.d.ts:372
+
+dist/index.d.ts:373
+
+___
+
+### Maybe
+
+• **Maybe**: `Readonly`\<\{ `asyncIterator`: \