// ets_tracing: off import type { Option } from "@effect-ts/system/Option" import type { Applicative } from "../Applicative/index.js" import type * as HKT from "../HKT/index.js" export interface WitherWithIndex { (F: Applicative): < GK, GQ, GW, GX, GI, GS, GR, GE, A, B, FK >( f: ( k: HKT.IndexFor>, a: A ) => HKT.Kind> ) => ( ta: HKT.Kind ) => HKT.Kind< G, GC, GK, GQ, GW, GX, GI, GS, GR, GE, HKT.Kind > } export interface WitherableWithIndex extends HKT.Base { readonly _WitherableWithIndex: "WitherableWithIndex" readonly compactWithIndexF: WitherWithIndex } export function implementCompactWithIndexF(): ( i: (_: { A: A B: B G: G FK: FK FQ: FQ FW: FW FX: FX FI: FI FS: FS FR: FR FE: FE }) => ( G: Applicative> ) => ( f: (k: HKT.IndexFor>, a: A) => HKT.HKT> ) => ( ta: HKT.Kind ) => HKT.HKT> ) => WitherWithIndex export function implementCompactWithIndexF() { return (i: any) => i() }