effect-ts-laws
Version:
effect-ts law testing using fast-check.
31 lines • 1.33 kB
TypeScript
import { Foldable as FO } from '@effect/typeclass';
import type { Kind, TypeLambda } from 'effect/HKT';
/**
* @category type lambda
*/
export interface RightFoldableTypeLambda extends TypeLambda {
readonly type: RightFoldable<this['Target'] & TypeLambda>;
}
/**
* The type of the `reduceRight` function for the foldable instance of the
* higher-kinded datatype `F`.
*
* Not included in the `effect-ts`
* [Foldable](https://github.com/Effect-TS/effect/blob/main/packages/typeclass/src/Foldable.ts)
* typeclass but implemented for several datatypes, for example
* [Array](https://github.com/Effect-TS/effect/blob/main/packages/effect/src/Array.ts#L2505).
* @category typeclass
*/
export interface ReduceRight<F extends TypeLambda> {
<A, B, R = never, O = unknown, E = unknown>(zero: B, f: (accumulator: B, value: A) => B): (self: Kind<F, R, O, E, A>) => B;
<A, B, R = never, O = unknown, E = unknown>(self: Kind<F, R, O, E, A>, zero: B, f: (accumulator: B, value: A) => B): B;
}
/**
* Adds a `reduceRight` function to
* [Foldable](https://github.com/Effect-TS/effect/blob/main/packages/typeclass/src/Foldable.ts).
* @category typeclass
*/
export interface RightFoldable<F extends TypeLambda> extends FO.Foldable<F> {
readonly reduceRight: ReduceRight<F>;
}
//# sourceMappingURL=RightFoldable.d.ts.map