import type { Kind, TypeClass, TypeLambda } from "effect/HKT"; import type { Applicative } from "./Applicative.js"; /** * @category type class * @since 0.24.0 */ export interface Traversable extends TypeClass { readonly traverse: (F: Applicative) => { (f: (a: A) => Kind): (self: Kind) => Kind>; (self: Kind, f: (a: A) => Kind): Kind>; }; } /** * Returns a default binary `traverse` composition. * * @since 0.24.0 */ export declare const traverseComposition: (T: Traversable, G: Traversable) => (F: Applicative) => (self: Kind>, f: (a: A) => Kind) => Kind>>; /** * Returns a default `sequence` implementation. * * @since 0.24.0 */ export declare const sequence: (T: Traversable) => (F: Applicative) => (self: Kind>) => Kind>; /** * Given a function which returns a `F` effect, thread this effect * through the running of this function on all the values in `T`, * returning an `T` in a `F` context, ignoring the values * returned by the provided function. * * @since 0.24.0 */ export declare const traverseTap: (T: Traversable) => (F: Applicative) => { (f: (a: A) => Kind): (self: Kind) => Kind>; (self: Kind, f: (a: A) => Kind): Kind>; }; //# sourceMappingURL=Traversable.d.ts.map