import { Kind, TyK, $type, TyVar } from '@fp4ts/core'; import { FlatMap } from './flat-map'; import { Applicative } from './applicative'; import { Foldable } from './foldable'; import { Functor } from './functor'; import { UnorderedTraversable, UnorderedTraversableRequirements } from './unordered-traversable'; import { ComposedTraversable } from './composed'; import { ArrayF } from './instances/array'; /** * @category Type Class */ export interface Traversable extends Functor, Foldable, UnorderedTraversable { readonly traverse: (G: Applicative) => (f: (a: A) => Kind) => (fa: Kind) => Kind]>; readonly traverse_: (G: Applicative) => (fa: Kind, f: (a: A) => Kind) => Kind]>; readonly sequence: (G: Applicative) => (fga: Kind]>) => Kind]>; readonly flatTraverse: (F: FlatMap, G: Applicative) => (f: (a: A) => Kind]>) => (fa: Kind) => Kind]>; readonly flatTraverse_: (F: FlatMap, G: Applicative) => (fa: Kind, f: (a: A) => Kind]>) => Kind]>; readonly flatSequence: (F: FlatMap, G: Applicative) => (fgfa: Kind]>]>) => Kind]>; } export type TraversableRequirements = Pick, 'traverse_'> & Partial> & Partial>; export declare const Traversable: Readonly<{ of: (T: TraversableRequirements) => Traversable; compose: (F: Traversable, G: Traversable) => ComposedTraversable; readonly Array: Traversable; Tuple2: { left: () => Traversable>; right: () => Traversable>; }; }>; export interface TraversableF extends TyK<[unknown]> { [$type]: Traversable>; } //# sourceMappingURL=traversable.d.ts.map