diff --git a/docs/modules/Array.ts.md b/docs/modules/Array.ts.md
index c6ec536a5..cc2d65fa7 100644
--- a/docs/modules/Array.ts.md
+++ b/docs/modules/Array.ts.md
@@ -238,7 +238,7 @@ element of the base type (this is useful for building a `Monad`).
**Signature**
```ts
-export declare const of: (a: A) => A[]
+export declare const of: (a: A) => [A]
```
**Example**
diff --git a/docs/modules/NonEmptyArray.ts.md b/docs/modules/NonEmptyArray.ts.md
index 1e1ffaab0..55b19a0a0 100644
--- a/docs/modules/NonEmptyArray.ts.md
+++ b/docs/modules/NonEmptyArray.ts.md
@@ -176,7 +176,7 @@ Added in v2.11.0
**Signature**
```ts
-export declare const of: (a: A) => NonEmptyArray
+export declare const of: (a: A) => [A]
```
Added in v2.0.0
diff --git a/dtslint/ts3.5/Array.ts b/dtslint/ts3.5/Array.ts
index 3d2850922..004b0de6a 100644
--- a/dtslint/ts3.5/Array.ts
+++ b/dtslint/ts3.5/Array.ts
@@ -9,6 +9,8 @@ declare const ns: Array
declare const ss: Array
declare const tns: Array<[number, string]>
+pipe(_.of('b'), ([value]: [string]) => value)
+
// prepend
pipe(ss, _.prepend('a')) // $ExpectType NonEmptyArray
diff --git a/package-lock.json b/package-lock.json
index d9d89a850..74b4a7ce6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "fp-ts",
- "version": "2.15.0",
+ "version": "2.16.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "fp-ts",
- "version": "2.15.0",
+ "version": "2.16.1",
"license": "MIT",
"devDependencies": {
"@effect/language-service": "^0.0.19",
diff --git a/src/Array.ts b/src/Array.ts
index 1668856aa..45b26d016 100644
--- a/src/Array.ts
+++ b/src/Array.ts
@@ -1508,7 +1508,7 @@ const _chainRecBreadthFirst: ChainRec1['chainRec'] = RA._chainRecBreadthFir
* @category constructors
* @since 2.0.0
*/
-export const of: (a: A) => Array = NEA.of
+export const of: (a: A) => [A] = NEA.of
/**
* Makes an empty `Array`, useful for building a [`Monoid`](#Monoid)
diff --git a/src/NonEmptyArray.ts b/src/NonEmptyArray.ts
index 4a135abcd..8f9b7a25c 100644
--- a/src/NonEmptyArray.ts
+++ b/src/NonEmptyArray.ts
@@ -464,7 +464,7 @@ export const copy: (as: NonEmptyArray) => NonEmptyArray = fromReadonlyN
* @category constructors
* @since 2.0.0
*/
-export const of: (a: A) => NonEmptyArray = (a) => [a]
+export const of: (a: A) => [A] = (a) => [a]
/**
* @since 2.5.1