Utils overview
Added in v2.0.0
Table of contents
adapters
adapter
Signature
export declare const adapter: <F extends TypeLambda>() => Adapter<F>
Added in v2.0.0
constructors
GenKindImpl (class)
Signature
export declare class GenKindImpl<F, R, O, E, A> { constructor(
/**
* @since 2.0.0
*/
readonly value: Kind<F, R, O, E, A>
) }
Added in v2.0.0
[Symbol.iterator] (method)
Signature
[Symbol.iterator](): Generator<GenKind<F, R, O, E, A>, A>
Added in v2.0.0
[GenKindTypeId] (property)
Signature
readonly [GenKindTypeId]: typeof GenKindTypeId
Added in v2.0.0
SingleShotGen (class)
Signature
export declare class SingleShotGen<T, A> { constructor(readonly self: T) }
Added in v2.0.0
next (method)
Signature
next(a: A): IteratorResult<T, A>
Added in v2.0.0
return (method)
Signature
return(a: A): IteratorResult<T, A>
Added in v2.0.0
throw (method)
Signature
throw(e: unknown): IteratorResult<T, A>
Added in v2.0.0
[Symbol.iterator] (method)
Signature
[Symbol.iterator](): Generator<T, A>
Added in v2.0.0
makeGenKind
Signature
export declare const makeGenKind: <F extends TypeLambda, R, O, E, A>(
kind: Kind<F, R, O, E, A>
) => GenKind<F, R, O, E, A>
Added in v2.0.0
model
OptionalNumber (type alias)
Signature
export type OptionalNumber = number | null | undefined
Added in v2.0.0
PCGRandom (class)
PCG is a family of simple fast space-efficient statistically good algorithms for random number generation. Unlike many general-purpose RNGs, they are also hard to predict.
Signature
export declare class PCGRandom {
constructor(seedHi?: OptionalNumber, seedLo?: OptionalNumber, incHi?: OptionalNumber, incLo?: OptionalNumber)
}
Added in v2.0.0
getState (method)
Returns a copy of the internal state of this random number generator as a JavaScript Array.
Signature
getState(): PCGRandomState
Added in v2.0.0
setState (method)
Restore state previously retrieved using getState()
.
Signature
setState(state: PCGRandomState)
Added in v2.0.0
integer (method)
Get a uniformly distributed 32 bit integer between [0, max).
Signature
integer(max: number)
Added in v2.0.0
number (method)
Get a uniformly distributed IEEE-754 double between 0.0 and 1.0, with 53 bits of precision (every bit of the mantissa is randomized).
Signature
number()
Added in v2.0.0
PCGRandomState (type alias)
Signature
export type PCGRandomState = [number, number, number, number]
Added in v2.0.0
models
Adapter (interface)
Signature
export interface Adapter<Z extends TypeLambda> {
<_R, _O, _E, _A>(self: Kind<Z, _R, _O, _E, _A>): GenKind<Z, _R, _O, _E, _A>
<A, _R, _O, _E, _A>(a: A, ab: (a: A) => Kind<Z, _R, _O, _E, _A>): GenKind<Z, _R, _O, _E, _A>
<A, B, _R, _O, _E, _A>(a: A, ab: (a: A) => B, bc: (b: B) => Kind<Z, _R, _O, _E, _A>): GenKind<Z, _R, _O, _E, _A>
<A, B, C, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: F) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (g: H) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => P,
pq: (p: P) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => P,
pq: (p: P) => Q,
qr: (q: Q) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => P,
pq: (p: P) => Q,
qr: (q: Q) => R,
rs: (r: R) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => P,
pq: (p: P) => Q,
qr: (q: Q) => R,
rs: (r: R) => S,
st: (s: S) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
<A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, _R, _O, _E, _A>(
a: A,
ab: (a: A) => B,
bc: (b: B) => C,
cd: (c: C) => D,
de: (d: D) => E,
ef: (e: E) => F,
fg: (f: F) => G,
gh: (g: G) => H,
hi: (h: H) => I,
ij: (i: I) => J,
jk: (j: J) => K,
kl: (k: K) => L,
lm: (l: L) => M,
mn: (m: M) => N,
no: (n: N) => O,
op: (o: O) => P,
pq: (p: P) => Q,
qr: (q: Q) => R,
rs: (r: R) => S,
st: (s: S) => T,
tu: (s: T) => Kind<Z, _R, _O, _E, _A>
): GenKind<Z, _R, _O, _E, _A>
}
Added in v2.0.0
Gen (interface)
Signature
export interface Gen<F extends TypeLambda, Z> {
<Self, K extends Variance<F, any, any, any> | YieldWrap<Kind<F, any, any, any, any>>, A>(
...args:
| [self: Self, body: (this: Self, resume: Z) => Generator<K, A, never>]
| [body: (resume: Z) => Generator<K, A, never>]
): Kind<
F,
[K] extends [Variance<F, infer R, any, any>]
? R
: [K] extends [YieldWrap<Kind<F, infer R, any, any, any>>]
? R
: never,
[K] extends [Variance<F, any, infer O, any>]
? O
: [K] extends [YieldWrap<Kind<F, any, infer O, any, any>>]
? O
: never,
[K] extends [Variance<F, any, any, infer E>]
? E
: [K] extends [YieldWrap<Kind<F, any, any, infer E, any>>]
? E
: never,
A
>
}
Added in v2.0.0
GenKind (interface)
Signature
export interface GenKind<F extends TypeLambda, R, O, E, A> extends Variance<F, R, O, E> {
readonly value: Kind<F, R, O, E, A>
[Symbol.iterator](): Generator<GenKind<F, R, O, E, A>, A>
}
Added in v2.0.0
Variance (interface)
Signature
export interface Variance<in out F extends TypeLambda, in R, out O, out E> {
readonly [GenKindTypeId]: GenKindTypeId
readonly _F: Types.Invariant<F>
readonly _R: Types.Contravariant<R>
readonly _O: Types.Covariant<O>
readonly _E: Types.Covariant<E>
}
Added in v2.0.0
modifiers
structuralRegion
Note: this is an experimental feature made available to allow custom matchers in tests, not to be directly used yet in user code
Signature
export declare const structuralRegion: <A>(body: () => A, tester?: (a: unknown, b: unknown) => boolean) => A
Added in v3.1.1
structuralRegionState
Note: this is an experimental feature made available to allow custom matchers in tests, not to be directly used yet in user code
Signature
export declare const structuralRegionState: {
enabled: boolean
tester: ((a: unknown, b: unknown) => boolean) | undefined
}
Added in v3.1.1
predicates
isGenKind
Signature
export declare const isGenKind: (u: unknown) => u is GenKind<any, any, any, any, any>
Added in v3.0.6
symbols
GenKindTypeId
Signature
export declare const GenKindTypeId: typeof GenKindTypeId
Added in v2.0.0
GenKindTypeId (type alias)
Signature
export type GenKindTypeId = typeof GenKindTypeId
Added in v2.0.0
tracing
internalCall
Signature
export declare const internalCall: <A>(fn: () => A) => A
Added in v3.2.2
utils
YieldWrap (class)
Signature
export declare class YieldWrap<T> {
constructor(value: T)
}
Added in v3.0.6
[YieldWrapTypeId] (method)
Signature
[YieldWrapTypeId](): T
Added in v3.0.6
#value (property)
Signature
readonly #value: T
Added in v3.0.6
YieldWrapTypeId
Signature
export declare const YieldWrapTypeId: typeof YieldWrapTypeId
Added in v3.0.6
yieldWrapGet
Signature
export declare function yieldWrapGet<T>(self: YieldWrap<T>): T
Added in v3.0.6