aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/.nojekyll1
-rw-r--r--docs/README.md35
-rw-r--r--docs/interfaces/effect.Bind.md38
-rw-r--r--docs/interfaces/effect.BindTo.md38
-rw-r--r--docs/interfaces/effect.Do.md37
-rw-r--r--docs/interfaces/effect.Effect.md87
-rw-r--r--docs/interfaces/effect.Kind1.md49
-rw-r--r--docs/interfaces/effect.Label.md37
-rw-r--r--docs/interfaces/effect.Noop.md31
-rw-r--r--docs/interfaces/effect.Pure.md37
-rw-r--r--docs/interfaces/effect.Seq.md37
-rw-r--r--docs/interfaces/exception.Throw.md37
-rw-r--r--docs/interfaces/exception.Try.md38
-rw-r--r--docs/interfaces/fs.ReadFile.md37
-rw-r--r--docs/interfaces/fs.WriteFile.md38
-rw-r--r--docs/interfaces/ref.CreateRef.md37
-rw-r--r--docs/interfaces/ref.DeleteRef.md37
-rw-r--r--docs/interfaces/ref.GetRef.md37
-rw-r--r--docs/interfaces/ref.SetRef.md38
-rw-r--r--docs/interfaces/stdio.Debug.md38
-rw-r--r--docs/interfaces/stdio.Print.md37
-rw-r--r--docs/interfaces/stdio.PutString.md37
-rw-r--r--docs/interfaces/stdio.ReadLine.md31
-rw-r--r--docs/interfaces/sys.DefineEffect.md38
-rw-r--r--docs/interfaces/sys.Exit.md37
-rw-r--r--docs/interfaces/sys.GetArgs.md31
-rw-r--r--docs/interfaces/sys.GetEnv.md37
-rw-r--r--docs/interfaces/sys.JsExpr.md37
-rw-r--r--docs/interfaces/sys.SetEvalEnvironment.md37
-rw-r--r--docs/interfaces/test.Assert.md37
-rw-r--r--docs/interfaces/test.AssertEqualsK.md52
-rw-r--r--docs/interfaces/test.Config.md5
-rw-r--r--docs/interfaces/test.ShowAssertionError.md38
-rw-r--r--docs/interfaces/test.Test.md38
-rw-r--r--docs/interfaces/util.ConstK.md52
-rw-r--r--docs/interfaces/util.IdK.md46
-rw-r--r--docs/modules.md17
-rw-r--r--docs/modules/effect.md38
-rw-r--r--docs/modules/exception.md10
-rw-r--r--docs/modules/fs.md10
-rw-r--r--docs/modules/nat.md208
-rw-r--r--docs/modules/ref.md26
-rw-r--r--docs/modules/stdio.md33
-rw-r--r--docs/modules/sys.md14
-rw-r--r--docs/modules/test.md34
-rw-r--r--docs/modules/util.md125
46 files changed, 1869 insertions, 0 deletions
diff --git a/docs/.nojekyll b/docs/.nojekyll
new file mode 100644
index 0000000..e2ac661
--- /dev/null
+++ b/docs/.nojekyll
@@ -0,0 +1 @@
+TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..c38000c
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,35 @@
+ts-types-lang / [Modules](modules.md)
+
+# TS Types lang [WIP]
+A runtime for typescript's **type system** that turns it into a **general purpose**, **purely functional** programming language!
+
+Take a look at the [./examples](./examples) directory for examples on how to write a program in typescript types
+
+### Example
+
+```typescript
+import { Bind, Kind1, Do } from 'ts-types-lang/stdlib/effect'
+import { PutString, PutStringLn, ReadLine } from 'ts-types-lang/stdlib/stdio'
+
+// :: string -> Effect ()
+interface GreetK extends Kind1<string> {
+ return: PutString<`Hello, ${this['input']}`>,
+}
+
+// main :: [Effect ()] | Effect ()
+export type main = [
+ PutString<"Your name? ">,
+ Bind<ReadLine, GreetK>,
+]
+```
+
+To run it -
+```bash
+npx tsr run ./examples/guess-number.ts
+// OR
+yarn exec tsr run ./examples/guess-number.ts
+```
+
+### Why?
+
+I dunno
diff --git a/docs/interfaces/effect.Bind.md b/docs/interfaces/effect.Bind.md
new file mode 100644
index 0000000..f11db50
--- /dev/null
+++ b/docs/interfaces/effect.Bind.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Bind
+
+# Interface: Bind<_Eff, _Fn\>
+
+[effect](../modules/effect.md).Bind
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Eff` | extends [`Effect`](effect.Effect.md) |
+| `_Fn` | extends [`Func`](../modules/effect.md#func) |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Bind`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Bind.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.BindTo.md b/docs/interfaces/effect.BindTo.md
new file mode 100644
index 0000000..135dc23
--- /dev/null
+++ b/docs/interfaces/effect.BindTo.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / BindTo
+
+# Interface: BindTo<_Name, _Eff\>
+
+[effect](../modules/effect.md).BindTo
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Name` | extends `string` |
+| `_Eff` | extends [`Effect`](effect.Effect.md) |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`BindTo`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.BindTo.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Do.md b/docs/interfaces/effect.Do.md
new file mode 100644
index 0000000..1e8860f
--- /dev/null
+++ b/docs/interfaces/effect.Do.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Do
+
+# Interface: Do<_Effs\>
+
+[effect](../modules/effect.md).Do
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Effs` | extends [`Effect`](effect.Effect.md)[] |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Do`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Do.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Effect.md b/docs/interfaces/effect.Effect.md
new file mode 100644
index 0000000..2c5287f
--- /dev/null
+++ b/docs/interfaces/effect.Effect.md
@@ -0,0 +1,87 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Effect
+
+# Interface: Effect<T\>
+
+[effect](../modules/effect.md).Effect
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `T` | `unknown` |
+
+## Hierarchy
+
+- **`Effect`**
+
+ ↳ [`Bind`](effect.Bind.md)
+
+ ↳ [`BindTo`](effect.BindTo.md)
+
+ ↳ [`Label`](effect.Label.md)
+
+ ↳ [`Seq`](effect.Seq.md)
+
+ ↳ [`Do`](effect.Do.md)
+
+ ↳ [`Pure`](effect.Pure.md)
+
+ ↳ [`Noop`](effect.Noop.md)
+
+ ↳ [`Try`](exception.Try.md)
+
+ ↳ [`Throw`](exception.Throw.md)
+
+ ↳ [`WriteFile`](fs.WriteFile.md)
+
+ ↳ [`ReadFile`](fs.ReadFile.md)
+
+ ↳ [`CreateRef`](ref.CreateRef.md)
+
+ ↳ [`GetRef`](ref.GetRef.md)
+
+ ↳ [`SetRef`](ref.SetRef.md)
+
+ ↳ [`DeleteRef`](ref.DeleteRef.md)
+
+ ↳ [`PutString`](stdio.PutString.md)
+
+ ↳ [`Print`](stdio.Print.md)
+
+ ↳ [`Debug`](stdio.Debug.md)
+
+ ↳ [`ReadLine`](stdio.ReadLine.md)
+
+ ↳ [`GetEnv`](sys.GetEnv.md)
+
+ ↳ [`GetArgs`](sys.GetArgs.md)
+
+ ↳ [`JsExpr`](sys.JsExpr.md)
+
+ ↳ [`DefineEffect`](sys.DefineEffect.md)
+
+ ↳ [`Exit`](sys.Exit.md)
+
+ ↳ [`SetEvalEnvironment`](sys.SetEvalEnvironment.md)
+
+ ↳ [`Assert`](test.Assert.md)
+
+ ↳ [`Test`](test.Test.md)
+
+ ↳ [`ShowAssertionError`](test.ShowAssertionError.md)
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Effect.md#output)
+
+## Properties
+
+### output
+
+• **output**: `T`
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Kind1.md b/docs/interfaces/effect.Kind1.md
new file mode 100644
index 0000000..7a865b5
--- /dev/null
+++ b/docs/interfaces/effect.Kind1.md
@@ -0,0 +1,49 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Kind1
+
+# Interface: Kind1<Inp, Out\>
+
+[effect](../modules/effect.md).Kind1
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `Inp` | `unknown` |
+| `Out` | `unknown` |
+
+## Hierarchy
+
+- **`Kind1`**
+
+ ↳ [`AssertEqualsK`](test.AssertEqualsK.md)
+
+ ↳ [`IdK`](util.IdK.md)
+
+ ↳ [`ConstK`](util.ConstK.md)
+
+## Table of contents
+
+### Properties
+
+- [input](effect.Kind1.md#input)
+- [return](effect.Kind1.md#return)
+
+## Properties
+
+### input
+
+• **input**: `Inp`
+
+#### Defined in
+
+[effect.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L6)
+
+___
+
+### return
+
+• **return**: `Out`
+
+#### Defined in
+
+[effect.ts:7](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L7)
diff --git a/docs/interfaces/effect.Label.md b/docs/interfaces/effect.Label.md
new file mode 100644
index 0000000..dc325a6
--- /dev/null
+++ b/docs/interfaces/effect.Label.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Label
+
+# Interface: Label<_Name\>
+
+[effect](../modules/effect.md).Label
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Name` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Label`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Label.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Noop.md b/docs/interfaces/effect.Noop.md
new file mode 100644
index 0000000..84d5a14
--- /dev/null
+++ b/docs/interfaces/effect.Noop.md
@@ -0,0 +1,31 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Noop
+
+# Interface: Noop
+
+[effect](../modules/effect.md).Noop
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Noop`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Noop.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Pure.md b/docs/interfaces/effect.Pure.md
new file mode 100644
index 0000000..cc93955
--- /dev/null
+++ b/docs/interfaces/effect.Pure.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Pure
+
+# Interface: Pure<V\>
+
+[effect](../modules/effect.md).Pure
+
+## Type parameters
+
+| Name |
+| :------ |
+| `V` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`V`\>
+
+ ↳ **`Pure`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Pure.md#output)
+
+## Properties
+
+### output
+
+• **output**: `V`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/effect.Seq.md b/docs/interfaces/effect.Seq.md
new file mode 100644
index 0000000..f82db81
--- /dev/null
+++ b/docs/interfaces/effect.Seq.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [effect](../modules/effect.md) / Seq
+
+# Interface: Seq<_Effs\>
+
+[effect](../modules/effect.md).Seq
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Effs` | extends [`Effect`](effect.Effect.md)[] |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Seq`**
+
+## Table of contents
+
+### Properties
+
+- [output](effect.Seq.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/exception.Throw.md b/docs/interfaces/exception.Throw.md
new file mode 100644
index 0000000..a5a8a77
--- /dev/null
+++ b/docs/interfaces/exception.Throw.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [exception](../modules/exception.md) / Throw
+
+# Interface: Throw<_E\>
+
+[exception](../modules/exception.md).Throw
+
+## Type parameters
+
+| Name |
+| :------ |
+| `_E` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Throw`**
+
+## Table of contents
+
+### Properties
+
+- [output](exception.Throw.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/exception.Try.md b/docs/interfaces/exception.Try.md
new file mode 100644
index 0000000..fb54ddf
--- /dev/null
+++ b/docs/interfaces/exception.Try.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [exception](../modules/exception.md) / Try
+
+# Interface: Try<_E, _Catch\>
+
+[exception](../modules/exception.md).Try
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_E` | extends [`Effect`](effect.Effect.md) |
+| `_Catch` | extends [`Func`](../modules/effect.md#func) |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Try`**
+
+## Table of contents
+
+### Properties
+
+- [output](exception.Try.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/fs.ReadFile.md b/docs/interfaces/fs.ReadFile.md
new file mode 100644
index 0000000..f0462c0
--- /dev/null
+++ b/docs/interfaces/fs.ReadFile.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [fs](../modules/fs.md) / ReadFile
+
+# Interface: ReadFile<_Path\>
+
+[fs](../modules/fs.md).ReadFile
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Path` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`string`\>
+
+ ↳ **`ReadFile`**
+
+## Table of contents
+
+### Properties
+
+- [output](fs.ReadFile.md#output)
+
+## Properties
+
+### output
+
+• **output**: `string`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/fs.WriteFile.md b/docs/interfaces/fs.WriteFile.md
new file mode 100644
index 0000000..e1a961b
--- /dev/null
+++ b/docs/interfaces/fs.WriteFile.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [fs](../modules/fs.md) / WriteFile
+
+# Interface: WriteFile<_Path, _Content\>
+
+[fs](../modules/fs.md).WriteFile
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Path` | extends `string` |
+| `_Content` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`WriteFile`**
+
+## Table of contents
+
+### Properties
+
+- [output](fs.WriteFile.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/ref.CreateRef.md b/docs/interfaces/ref.CreateRef.md
new file mode 100644
index 0000000..74425d0
--- /dev/null
+++ b/docs/interfaces/ref.CreateRef.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [ref](../modules/ref.md) / CreateRef
+
+# Interface: CreateRef<_Val\>
+
+[ref](../modules/ref.md).CreateRef
+
+## Type parameters
+
+| Name |
+| :------ |
+| `_Val` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<[`Ref`](../modules/ref.md#ref)\>
+
+ ↳ **`CreateRef`**
+
+## Table of contents
+
+### Properties
+
+- [output](ref.CreateRef.md#output)
+
+## Properties
+
+### output
+
+• **output**: `string`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/ref.DeleteRef.md b/docs/interfaces/ref.DeleteRef.md
new file mode 100644
index 0000000..0099928
--- /dev/null
+++ b/docs/interfaces/ref.DeleteRef.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [ref](../modules/ref.md) / DeleteRef
+
+# Interface: DeleteRef<_Key\>
+
+[ref](../modules/ref.md).DeleteRef
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Key` | extends [`Ref`](../modules/ref.md#ref) |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`DeleteRef`**
+
+## Table of contents
+
+### Properties
+
+- [output](ref.DeleteRef.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/ref.GetRef.md b/docs/interfaces/ref.GetRef.md
new file mode 100644
index 0000000..11819c7
--- /dev/null
+++ b/docs/interfaces/ref.GetRef.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [ref](../modules/ref.md) / GetRef
+
+# Interface: GetRef<_Key\>
+
+[ref](../modules/ref.md).GetRef
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Key` | extends [`Ref`](../modules/ref.md#ref) |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`GetRef`**
+
+## Table of contents
+
+### Properties
+
+- [output](ref.GetRef.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/ref.SetRef.md b/docs/interfaces/ref.SetRef.md
new file mode 100644
index 0000000..f198b95
--- /dev/null
+++ b/docs/interfaces/ref.SetRef.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [ref](../modules/ref.md) / SetRef
+
+# Interface: SetRef<_Key, _Val\>
+
+[ref](../modules/ref.md).SetRef
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Key` | extends [`Ref`](../modules/ref.md#ref) |
+| `_Val` | `_Val` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`SetRef`**
+
+## Table of contents
+
+### Properties
+
+- [output](ref.SetRef.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/stdio.Debug.md b/docs/interfaces/stdio.Debug.md
new file mode 100644
index 0000000..79d59f3
--- /dev/null
+++ b/docs/interfaces/stdio.Debug.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [stdio](../modules/stdio.md) / Debug
+
+# Interface: Debug<_, T\>
+
+[stdio](../modules/stdio.md).Debug
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_` | extends `string` |
+| `T` | `T` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`T`\>
+
+ ↳ **`Debug`**
+
+## Table of contents
+
+### Properties
+
+- [output](stdio.Debug.md#output)
+
+## Properties
+
+### output
+
+• **output**: `T`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/stdio.Print.md b/docs/interfaces/stdio.Print.md
new file mode 100644
index 0000000..c4b7e50
--- /dev/null
+++ b/docs/interfaces/stdio.Print.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [stdio](../modules/stdio.md) / Print
+
+# Interface: Print<_\>
+
+[stdio](../modules/stdio.md).Print
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_` | extends `any` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Print`**
+
+## Table of contents
+
+### Properties
+
+- [output](stdio.Print.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/stdio.PutString.md b/docs/interfaces/stdio.PutString.md
new file mode 100644
index 0000000..1960d1a
--- /dev/null
+++ b/docs/interfaces/stdio.PutString.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [stdio](../modules/stdio.md) / PutString
+
+# Interface: PutString<_\>
+
+[stdio](../modules/stdio.md).PutString
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`PutString`**
+
+## Table of contents
+
+### Properties
+
+- [output](stdio.PutString.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/stdio.ReadLine.md b/docs/interfaces/stdio.ReadLine.md
new file mode 100644
index 0000000..fd2443e
--- /dev/null
+++ b/docs/interfaces/stdio.ReadLine.md
@@ -0,0 +1,31 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [stdio](../modules/stdio.md) / ReadLine
+
+# Interface: ReadLine
+
+[stdio](../modules/stdio.md).ReadLine
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`string`\>
+
+ ↳ **`ReadLine`**
+
+## Table of contents
+
+### Properties
+
+- [output](stdio.ReadLine.md#output)
+
+## Properties
+
+### output
+
+• **output**: `string`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.DefineEffect.md b/docs/interfaces/sys.DefineEffect.md
new file mode 100644
index 0000000..56c3d65
--- /dev/null
+++ b/docs/interfaces/sys.DefineEffect.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / DefineEffect
+
+# Interface: DefineEffect<_Name, _Func\>
+
+[sys](../modules/sys.md).DefineEffect
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Name` | extends `string` |
+| `_Func` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`DefineEffect`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.DefineEffect.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.Exit.md b/docs/interfaces/sys.Exit.md
new file mode 100644
index 0000000..ee24029
--- /dev/null
+++ b/docs/interfaces/sys.Exit.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / Exit
+
+# Interface: Exit<_\>
+
+[sys](../modules/sys.md).Exit
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_` | extends `number` \| `undefined` = `undefined` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Exit`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.Exit.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.GetArgs.md b/docs/interfaces/sys.GetArgs.md
new file mode 100644
index 0000000..d373dbe
--- /dev/null
+++ b/docs/interfaces/sys.GetArgs.md
@@ -0,0 +1,31 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / GetArgs
+
+# Interface: GetArgs
+
+[sys](../modules/sys.md).GetArgs
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`string`[]\>
+
+ ↳ **`GetArgs`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.GetArgs.md#output)
+
+## Properties
+
+### output
+
+• **output**: `string`[]
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.GetEnv.md b/docs/interfaces/sys.GetEnv.md
new file mode 100644
index 0000000..ab1192b
--- /dev/null
+++ b/docs/interfaces/sys.GetEnv.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / GetEnv
+
+# Interface: GetEnv<_Name\>
+
+[sys](../modules/sys.md).GetEnv
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Name` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`string`\>
+
+ ↳ **`GetEnv`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.GetEnv.md#output)
+
+## Properties
+
+### output
+
+• **output**: `string`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.JsExpr.md b/docs/interfaces/sys.JsExpr.md
new file mode 100644
index 0000000..db406bf
--- /dev/null
+++ b/docs/interfaces/sys.JsExpr.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / JsExpr
+
+# Interface: JsExpr<_Expr\>
+
+[sys](../modules/sys.md).JsExpr
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Expr` | extends `string` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)<`any`\>
+
+ ↳ **`JsExpr`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.JsExpr.md#output)
+
+## Properties
+
+### output
+
+• **output**: `any`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/sys.SetEvalEnvironment.md b/docs/interfaces/sys.SetEvalEnvironment.md
new file mode 100644
index 0000000..4784697
--- /dev/null
+++ b/docs/interfaces/sys.SetEvalEnvironment.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [sys](../modules/sys.md) / SetEvalEnvironment
+
+# Interface: SetEvalEnvironment<_Env\>
+
+[sys](../modules/sys.md).SetEvalEnvironment
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_Env` | extends ``"test.node"`` \| ``"node"`` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`SetEvalEnvironment`**
+
+## Table of contents
+
+### Properties
+
+- [output](sys.SetEvalEnvironment.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/test.Assert.md b/docs/interfaces/test.Assert.md
new file mode 100644
index 0000000..b066763
--- /dev/null
+++ b/docs/interfaces/test.Assert.md
@@ -0,0 +1,37 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [test](../modules/test.md) / Assert
+
+# Interface: Assert<_B\>
+
+[test](../modules/test.md).Assert
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_B` | extends `boolean` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Assert`**
+
+## Table of contents
+
+### Properties
+
+- [output](test.Assert.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/test.AssertEqualsK.md b/docs/interfaces/test.AssertEqualsK.md
new file mode 100644
index 0000000..e6b4d63
--- /dev/null
+++ b/docs/interfaces/test.AssertEqualsK.md
@@ -0,0 +1,52 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [test](../modules/test.md) / AssertEqualsK
+
+# Interface: AssertEqualsK<Right\>
+
+[test](../modules/test.md).AssertEqualsK
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `Right` | extends `unknown` |
+
+## Hierarchy
+
+- [`Kind1`](effect.Kind1.md)
+
+ ↳ **`AssertEqualsK`**
+
+## Table of contents
+
+### Properties
+
+- [input](test.AssertEqualsK.md#input)
+- [return](test.AssertEqualsK.md#return)
+
+## Properties
+
+### input
+
+• **input**: `unknown`
+
+#### Inherited from
+
+[Kind1](effect.Kind1.md).[input](effect.Kind1.md#input)
+
+#### Defined in
+
+[effect.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L6)
+
+___
+
+### return
+
+• **return**: [`AssertEquals`](../modules/test.md#assertequals)<`unknown`, `Right`\>
+
+#### Overrides
+
+[Kind1](effect.Kind1.md).[return](effect.Kind1.md#return)
+
+#### Defined in
+
+[test.ts:24](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/test.ts#L24)
diff --git a/docs/interfaces/test.Config.md b/docs/interfaces/test.Config.md
new file mode 100644
index 0000000..5919847
--- /dev/null
+++ b/docs/interfaces/test.Config.md
@@ -0,0 +1,5 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [test](../modules/test.md) / Config
+
+# Interface: Config
+
+[test](../modules/test.md).Config
diff --git a/docs/interfaces/test.ShowAssertionError.md b/docs/interfaces/test.ShowAssertionError.md
new file mode 100644
index 0000000..49ba54b
--- /dev/null
+++ b/docs/interfaces/test.ShowAssertionError.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [test](../modules/test.md) / ShowAssertionError
+
+# Interface: ShowAssertionError<_L, _R\>
+
+[test](../modules/test.md).ShowAssertionError
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_L` | extends `unknown` |
+| `_R` | extends `unknown` |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`ShowAssertionError`**
+
+## Table of contents
+
+### Properties
+
+- [output](test.ShowAssertionError.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/test.Test.md b/docs/interfaces/test.Test.md
new file mode 100644
index 0000000..66e6c93
--- /dev/null
+++ b/docs/interfaces/test.Test.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [test](../modules/test.md) / Test
+
+# Interface: Test<_m, _effs\>
+
+[test](../modules/test.md).Test
+
+## Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `_m` | extends `string` |
+| `_effs` | extends [`Effect`](effect.Effect.md)[] |
+
+## Hierarchy
+
+- [`Effect`](effect.Effect.md)
+
+ ↳ **`Test`**
+
+## Table of contents
+
+### Properties
+
+- [output](test.Test.md#output)
+
+## Properties
+
+### output
+
+• **output**: `unknown`
+
+#### Inherited from
+
+[Effect](effect.Effect.md).[output](effect.Effect.md#output)
+
+#### Defined in
+
+[effect.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L2)
diff --git a/docs/interfaces/util.ConstK.md b/docs/interfaces/util.ConstK.md
new file mode 100644
index 0000000..d75c33a
--- /dev/null
+++ b/docs/interfaces/util.ConstK.md
@@ -0,0 +1,52 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [util](../modules/util.md) / ConstK
+
+# Interface: ConstK<Val\>
+
+[util](../modules/util.md).ConstK
+
+## Type parameters
+
+| Name |
+| :------ |
+| `Val` |
+
+## Hierarchy
+
+- [`Kind1`](effect.Kind1.md)<`unknown`, `Val`\>
+
+ ↳ **`ConstK`**
+
+## Table of contents
+
+### Properties
+
+- [input](util.ConstK.md#input)
+- [return](util.ConstK.md#return)
+
+## Properties
+
+### input
+
+• **input**: `unknown`
+
+#### Inherited from
+
+[Kind1](effect.Kind1.md).[input](effect.Kind1.md#input)
+
+#### Defined in
+
+[effect.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L6)
+
+___
+
+### return
+
+• **return**: `Val`
+
+#### Overrides
+
+[Kind1](effect.Kind1.md).[return](effect.Kind1.md#return)
+
+#### Defined in
+
+[util.ts:13](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L13)
diff --git a/docs/interfaces/util.IdK.md b/docs/interfaces/util.IdK.md
new file mode 100644
index 0000000..c46bd22
--- /dev/null
+++ b/docs/interfaces/util.IdK.md
@@ -0,0 +1,46 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / [util](../modules/util.md) / IdK
+
+# Interface: IdK
+
+[util](../modules/util.md).IdK
+
+## Hierarchy
+
+- [`Kind1`](effect.Kind1.md)
+
+ ↳ **`IdK`**
+
+## Table of contents
+
+### Properties
+
+- [input](util.IdK.md#input)
+- [return](util.IdK.md#return)
+
+## Properties
+
+### input
+
+• **input**: `unknown`
+
+#### Inherited from
+
+[Kind1](effect.Kind1.md).[input](effect.Kind1.md#input)
+
+#### Defined in
+
+[effect.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L6)
+
+___
+
+### return
+
+• **return**: `unknown`
+
+#### Overrides
+
+[Kind1](effect.Kind1.md).[return](effect.Kind1.md#return)
+
+#### Defined in
+
+[util.ts:9](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L9)
diff --git a/docs/modules.md b/docs/modules.md
new file mode 100644
index 0000000..af95f62
--- /dev/null
+++ b/docs/modules.md
@@ -0,0 +1,17 @@
+[ts-types-lang](README.md) / Modules
+
+# ts-types-lang
+
+## Table of contents
+
+### Modules
+
+- [effect](modules/effect.md)
+- [exception](modules/exception.md)
+- [fs](modules/fs.md)
+- [nat](modules/nat.md)
+- [ref](modules/ref.md)
+- [stdio](modules/stdio.md)
+- [sys](modules/sys.md)
+- [test](modules/test.md)
+- [util](modules/util.md)
diff --git a/docs/modules/effect.md b/docs/modules/effect.md
new file mode 100644
index 0000000..d9146e1
--- /dev/null
+++ b/docs/modules/effect.md
@@ -0,0 +1,38 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / effect
+
+# Module: effect
+
+## Table of contents
+
+### Interfaces
+
+- [Bind](../interfaces/effect.Bind.md)
+- [BindTo](../interfaces/effect.BindTo.md)
+- [Do](../interfaces/effect.Do.md)
+- [Effect](../interfaces/effect.Effect.md)
+- [Kind1](../interfaces/effect.Kind1.md)
+- [Label](../interfaces/effect.Label.md)
+- [Noop](../interfaces/effect.Noop.md)
+- [Pure](../interfaces/effect.Pure.md)
+- [Seq](../interfaces/effect.Seq.md)
+
+### Type Aliases
+
+- [Func](effect.md#func)
+
+## Type Aliases
+
+### Func
+
+Ƭ **Func**<`Inp`, `Out`\>: [`Kind1`](../interfaces/effect.Kind1.md)<`Inp`, `Out`\> \| <_T\>() => `Out`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `Inp` | `unknown` |
+| `Out` | `unknown` |
+
+#### Defined in
+
+[effect.ts:10](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/effect.ts#L10)
diff --git a/docs/modules/exception.md b/docs/modules/exception.md
new file mode 100644
index 0000000..ba3b0c2
--- /dev/null
+++ b/docs/modules/exception.md
@@ -0,0 +1,10 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / exception
+
+# Module: exception
+
+## Table of contents
+
+### Interfaces
+
+- [Throw](../interfaces/exception.Throw.md)
+- [Try](../interfaces/exception.Try.md)
diff --git a/docs/modules/fs.md b/docs/modules/fs.md
new file mode 100644
index 0000000..d54aa85
--- /dev/null
+++ b/docs/modules/fs.md
@@ -0,0 +1,10 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / fs
+
+# Module: fs
+
+## Table of contents
+
+### Interfaces
+
+- [ReadFile](../interfaces/fs.ReadFile.md)
+- [WriteFile](../interfaces/fs.WriteFile.md)
diff --git a/docs/modules/nat.md b/docs/modules/nat.md
new file mode 100644
index 0000000..610ffe7
--- /dev/null
+++ b/docs/modules/nat.md
@@ -0,0 +1,208 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / nat
+
+# Module: nat
+
+## Table of contents
+
+### Type Aliases
+
+- [Add](nat.md#add)
+- [FromNumber](nat.md#fromnumber)
+- [Nat](nat.md#nat)
+- [Pred](nat.md#pred)
+- [Succ](nat.md#succ)
+- [ToNumber](nat.md#tonumber)
+- [Zero](nat.md#zero)
+- [\_0](nat.md#_0)
+- [\_1](nat.md#_1)
+- [\_2](nat.md#_2)
+- [\_3](nat.md#_3)
+- [\_4](nat.md#_4)
+- [\_5](nat.md#_5)
+- [\_9](nat.md#_9)
+
+## Type Aliases
+
+### Add
+
+Ƭ **Add**<`A`, `B`\>: `A` extends [`Zero`](nat.md#zero) ? `B` : [`Add`](nat.md#add)<[`Pred`](nat.md#pred)<`A`\>, [`Succ`](nat.md#succ)<`B`\>\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `A` | extends [`Nat`](nat.md#nat) |
+| `B` | extends [`Nat`](nat.md#nat) |
+
+#### Defined in
+
+[nat.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L6)
+
+___
+
+### FromNumber
+
+Ƭ **FromNumber**<`N`, `Res`, `Acc`\>: `N` extends `Acc`[``"length"``] ? `Res` : [`FromNumber`](nat.md#fromnumber)<`N`, [`Succ`](nat.md#succ)<`Res`\>, [...Acc, ``0``]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `N` | extends `number` |
+| `Res` | extends [`Nat`](nat.md#nat) = [`Zero`](nat.md#zero) |
+| `Acc` | extends ``0``[] = [] |
+
+#### Defined in
+
+[nat.ts:14](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L14)
+
+___
+
+### Nat
+
+Ƭ **Nat**: [`Zero`](nat.md#zero) \| { `_prev`: [`Nat`](nat.md#nat) }
+
+#### Defined in
+
+[nat.ts:1](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L1)
+
+___
+
+### Pred
+
+Ƭ **Pred**<`N`\>: `N` extends [`Zero`](nat.md#zero) ? [`Zero`](nat.md#zero) : `N`[``"_prev"``]
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `N` | extends [`Nat`](nat.md#nat) |
+
+#### Defined in
+
+[nat.ts:4](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L4)
+
+___
+
+### Succ
+
+Ƭ **Succ**<`N`\>: `Object`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `N` | extends [`Nat`](nat.md#nat) |
+
+#### Type declaration
+
+| Name | Type |
+| :------ | :------ |
+| `_prev` | `N` |
+
+#### Defined in
+
+[nat.ts:3](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L3)
+
+___
+
+### ToNumber
+
+Ƭ **ToNumber**<`N`, `Acc`\>: `N` extends [`Zero`](nat.md#zero) ? `Acc`[``"length"``] : [`ToNumber`](nat.md#tonumber)<[`Pred`](nat.md#pred)<`N`\>, [...Acc, ``0``]\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `N` | extends [`Nat`](nat.md#nat) |
+| `Acc` | extends ``0``[] = [] |
+
+#### Defined in
+
+[nat.ts:10](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L10)
+
+___
+
+### Zero
+
+Ƭ **Zero**: `Object`
+
+#### Type declaration
+
+| Name | Type |
+| :------ | :------ |
+| `_prev` | ``null`` |
+
+#### Defined in
+
+[nat.ts:2](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L2)
+
+___
+
+### \_0
+
+Ƭ **\_0**: [`Zero`](nat.md#zero)
+
+#### Defined in
+
+[nat.ts:20](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L20)
+
+___
+
+### \_1
+
+Ƭ **\_1**: [`Succ`](nat.md#succ)<[`_0`](nat.md#_0)\>
+
+#### Defined in
+
+[nat.ts:21](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L21)
+
+___
+
+### \_2
+
+Ƭ **\_2**: [`Succ`](nat.md#succ)<[`_1`](nat.md#_1)\>
+
+#### Defined in
+
+[nat.ts:22](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L22)
+
+___
+
+### \_3
+
+Ƭ **\_3**: [`Succ`](nat.md#succ)<[`_2`](nat.md#_2)\>
+
+#### Defined in
+
+[nat.ts:23](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L23)
+
+___
+
+### \_4
+
+Ƭ **\_4**: [`Succ`](nat.md#succ)<[`_3`](nat.md#_3)\>
+
+#### Defined in
+
+[nat.ts:24](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L24)
+
+___
+
+### \_5
+
+Ƭ **\_5**: [`Succ`](nat.md#succ)<[`_4`](nat.md#_4)\>
+
+#### Defined in
+
+[nat.ts:25](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L25)
+
+___
+
+### \_9
+
+Ƭ **\_9**: [`Add`](nat.md#add)<[`_4`](nat.md#_4), [`_5`](nat.md#_5)\>
+
+#### Defined in
+
+[nat.ts:26](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/nat.ts#L26)
diff --git a/docs/modules/ref.md b/docs/modules/ref.md
new file mode 100644
index 0000000..dea0952
--- /dev/null
+++ b/docs/modules/ref.md
@@ -0,0 +1,26 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / ref
+
+# Module: ref
+
+## Table of contents
+
+### Interfaces
+
+- [CreateRef](../interfaces/ref.CreateRef.md)
+- [DeleteRef](../interfaces/ref.DeleteRef.md)
+- [GetRef](../interfaces/ref.GetRef.md)
+- [SetRef](../interfaces/ref.SetRef.md)
+
+### Type Aliases
+
+- [Ref](ref.md#ref)
+
+## Type Aliases
+
+### Ref
+
+Ƭ **Ref**: `string`
+
+#### Defined in
+
+[ref.ts:6](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/ref.ts#L6)
diff --git a/docs/modules/stdio.md b/docs/modules/stdio.md
new file mode 100644
index 0000000..a92a239
--- /dev/null
+++ b/docs/modules/stdio.md
@@ -0,0 +1,33 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / stdio
+
+# Module: stdio
+
+## Table of contents
+
+### Interfaces
+
+- [Debug](../interfaces/stdio.Debug.md)
+- [Print](../interfaces/stdio.Print.md)
+- [PutString](../interfaces/stdio.PutString.md)
+- [ReadLine](../interfaces/stdio.ReadLine.md)
+
+### Type Aliases
+
+- [PutStringLn](stdio.md#putstringln)
+
+## Type Aliases
+
+### PutStringLn
+
+Ƭ **PutStringLn**<`S`\>: `S` extends infer S ? [`PutString`](../interfaces/stdio.PutString.md)<\`${S}
+\`\> : `never`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `S` | extends `string` |
+
+#### Defined in
+
+[stdio.ts:11](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/stdio.ts#L11)
diff --git a/docs/modules/sys.md b/docs/modules/sys.md
new file mode 100644
index 0000000..6cb2d99
--- /dev/null
+++ b/docs/modules/sys.md
@@ -0,0 +1,14 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / sys
+
+# Module: sys
+
+## Table of contents
+
+### Interfaces
+
+- [DefineEffect](../interfaces/sys.DefineEffect.md)
+- [Exit](../interfaces/sys.Exit.md)
+- [GetArgs](../interfaces/sys.GetArgs.md)
+- [GetEnv](../interfaces/sys.GetEnv.md)
+- [JsExpr](../interfaces/sys.JsExpr.md)
+- [SetEvalEnvironment](../interfaces/sys.SetEvalEnvironment.md)
diff --git a/docs/modules/test.md b/docs/modules/test.md
new file mode 100644
index 0000000..f3a2682
--- /dev/null
+++ b/docs/modules/test.md
@@ -0,0 +1,34 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / test
+
+# Module: test
+
+## Table of contents
+
+### Interfaces
+
+- [Assert](../interfaces/test.Assert.md)
+- [AssertEqualsK](../interfaces/test.AssertEqualsK.md)
+- [Config](../interfaces/test.Config.md)
+- [ShowAssertionError](../interfaces/test.ShowAssertionError.md)
+- [Test](../interfaces/test.Test.md)
+
+### Type Aliases
+
+- [AssertEquals](test.md#assertequals)
+
+## Type Aliases
+
+### AssertEquals
+
+Ƭ **AssertEquals**<`Left`, `Right`\>: [`Try`](../interfaces/exception.Try.md)<[`Assert`](../interfaces/test.Assert.md)<[`Equals`](util.md#equals)<`Left`, `Right`\>\>, <m\>() => [`Do`](../interfaces/effect.Do.md)<[[`ShowAssertionError`](../interfaces/test.ShowAssertionError.md)<`Left`, `Right`\>, [`Throw`](../interfaces/exception.Throw.md)<`m`\>]\>\>
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `Left` |
+| `Right` |
+
+#### Defined in
+
+[test.ts:18](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/test.ts#L18)
diff --git a/docs/modules/util.md b/docs/modules/util.md
new file mode 100644
index 0000000..d89e23e
--- /dev/null
+++ b/docs/modules/util.md
@@ -0,0 +1,125 @@
+[ts-types-lang](../README.md) / [Modules](../modules.md) / util
+
+# Module: util
+
+## Table of contents
+
+### Interfaces
+
+- [ConstK](../interfaces/util.ConstK.md)
+- [IdK](../interfaces/util.IdK.md)
+
+### Type Aliases
+
+- [ADT](util.md#adt)
+- [ApplyK](util.md#applyk)
+- [Equals](util.md#equals)
+- [Id](util.md#id)
+- [Let](util.md#let)
+- [Not](util.md#not)
+
+## Type Aliases
+
+### ADT
+
+Ƭ **ADT**<`D`\>: { [k in keyof D]: Object } extends infer Rec ? { `t`: `Rec`[keyof `Rec`] } & { [k in keyof Rec]: ADTConstructor<Rec[k]\> } : `never`
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `D` | extends `Record`<`string`, `any`\> |
+
+#### Defined in
+
+[util.ts:23](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L23)
+
+___
+
+### ApplyK
+
+Ƭ **ApplyK**<`K`, `Val`\>: `K` & { `input`: `Val` }[``"return"``]
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `K` | extends [`Kind1`](../interfaces/effect.Kind1.md) |
+| `Val` | `Val` |
+
+#### Defined in
+
+[util.ts:5](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L5)
+
+___
+
+### Equals
+
+Ƭ **Equals**<`Left`, `Right`\>: [`Left`] extends [`Right`] ? [`Right`] extends [`Left`] ? ``true`` : ``false`` : ``false``
+
+#### Type parameters
+
+| Name |
+| :------ |
+| `Left` |
+| `Right` |
+
+#### Defined in
+
+[util.ts:29](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L29)
+
+___
+
+### Id
+
+Ƭ **Id**: <T\>() => `T`
+
+#### Type declaration
+
+▸ <`T`\>(): `T`
+
+##### Type parameters
+
+| Name |
+| :------ |
+| `T` |
+
+##### Returns
+
+`T`
+
+#### Defined in
+
+[util.ts:7](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L7)
+
+___
+
+### Let
+
+Ƭ **Let**<`f`\>: `ReturnType`<`f`\>
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `f` | extends (...`args`: `any`) => `any` |
+
+#### Defined in
+
+[util.ts:3](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L3)
+
+___
+
+### Not
+
+Ƭ **Not**<`B`\>: `B` extends ``true`` ? ``false`` : ``true``
+
+#### Type parameters
+
+| Name | Type |
+| :------ | :------ |
+| `B` | extends `boolean` |
+
+#### Defined in
+
+[util.ts:35](https://github.com/phenax/ts-types-runtime-environment/blob/6c7b4f3/stdlib/util.ts#L35)