diff --git a/CHANGELOG.md b/CHANGELOG.md
index b2c4c83..43c2ff3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,6 +11,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- Add `prefix` to `string` module.
- Add `suffix` to `string` module.
+### Changed
+
+- Changed overloads of `$mock.union` function.
+
### Fixed
- Update `yarn.lock` in order to fix "typescript (18.x)" and "jest (18.x)" jobs in CI.
diff --git a/src/Mock.test.ts b/src/Mock.test.ts
index 1101889..a233a39 100644
--- a/src/Mock.test.ts
+++ b/src/Mock.test.ts
@@ -345,7 +345,23 @@ describe('Mock', () => {
})
describe('union', () => {
- const M = union(boolean, number(), string)
+ const M = union(
+ boolean,
+ number(),
+ string,
+ boolean,
+ number(),
+ string,
+ boolean,
+ number(),
+ string,
+ boolean,
+ number(),
+ string,
+ boolean,
+ number(),
+ string,
+ )
it('should return a random value of one of the specified types', () => {
for (let i = 0; i < 10; i++) {
diff --git a/src/Mock.ts b/src/Mock.ts
index 73a2865..709be4e 100644
--- a/src/Mock.ts
+++ b/src/Mock.ts
@@ -1,3 +1,8 @@
+import { PartialDeep } from '.'
+import { curry, recurse, run } from './function'
+import * as $St from './struct'
+import * as $t from './Type'
+import * as $Y from './Yield'
import * as Appli from 'fp-ts/Applicative'
import * as _Apply from 'fp-ts/Apply'
import * as C from 'fp-ts/Chain'
@@ -24,11 +29,6 @@ import * as RNEA from 'fp-ts/ReadonlyNonEmptyArray'
import * as RR from 'fp-ts/ReadonlyRecord'
import * as Se from 'fp-ts/Semigroup'
import * as t from 'io-ts'
-import { PartialDeep } from '.'
-import { curry, recurse, run } from './function'
-import * as $St from './struct'
-import * as $t from './Type'
-import * as $Y from './Yield'
export const URI = 'Mock'
@@ -209,6 +209,86 @@ export const partial = (
struct,
) as any
+export function union(
+ a: Mock,
+ b: Mock,
+ c: Mock,
+ d: Mock,
+ e: Mock,
+ f: Mock,
+ g: Mock,
+ h: Mock,
+ i: Mock,
+ j: Mock,
+ k: Mock,
+ l: Mock,
+ m: Mock,
+ n: Mock,
+ o: Mock,
+): Mock
+
+export function union(
+ a: Mock,
+ b: Mock,
+ c: Mock,
+ d: Mock,
+ e: Mock,
+ f: Mock,
+ g: Mock,
+ h: Mock,
+ i: Mock,
+ j: Mock,
+ k: Mock,
+ l: Mock,
+ m: Mock,
+ n: Mock,
+): Mock
+
+export function union(
+ a: Mock,
+ b: Mock,
+ c: Mock,
+ d: Mock,
+ e: Mock,
+ f: Mock,
+ g: Mock,
+ h: Mock,
+ i: Mock,
+ j: Mock,
+ k: Mock,
+ l: Mock,
+ m: Mock,
+): Mock
+
+export function union(
+ a: Mock,
+ b: Mock,
+ c: Mock,
+ d: Mock,
+ e: Mock,
+ f: Mock,
+ g: Mock,
+ h: Mock,
+ i: Mock,
+ j: Mock,
+ k: Mock,
+ l: Mock,
+): Mock
+
+export function union(
+ a: Mock,
+ b: Mock,
+ c: Mock,
+ d: Mock,
+ e: Mock,
+ f: Mock,
+ g: Mock,
+ h: Mock,
+ i: Mock,
+ j: Mock,
+ k: Mock,
+): Mock
+
export function union(
a: Mock,
b: Mock,