import type * as Chunk from "../../Chunk.js" /** @internal */ export type ZipChunksState = PullBoth | PullLeft | PullRight /** @internal */ export const OP_PULL_BOTH = "PullBoth" as const /** @internal */ export type OP_PULL_BOTH = typeof OP_PULL_BOTH /** @internal */ export const OP_PULL_LEFT = "PullLet" as const /** @internal */ export type OP_PULL_LEFT = typeof OP_PULL_LEFT /** @internal */ export const OP_PULL_RIGHT = "PullRight" as const /** @internal */ export type OP_PULL_RIGHT = typeof OP_PULL_RIGHT /** @internal */ export interface PullBoth { readonly _tag: OP_PULL_BOTH } /** @internal */ export interface PullLeft { readonly _tag: OP_PULL_LEFT readonly rightChunk: Chunk.Chunk } /** @internal */ export interface PullRight { readonly _tag: OP_PULL_RIGHT readonly leftChunk: Chunk.Chunk } /** @internal */ export const PullBoth: ZipChunksState = { _tag: OP_PULL_BOTH } /** @internal */ export const PullLeft = (rightChunk: Chunk.Chunk): ZipChunksState => ({ _tag: OP_PULL_LEFT, rightChunk }) /** @internal */ export const PullRight = (leftChunk: Chunk.Chunk): ZipChunksState => ({ _tag: OP_PULL_RIGHT, leftChunk })