import type { List } from "."; import type { ConcatW } from "./ConcatW"; // @ts-ignore - Only used in doc comments import type ConcatWFn from "./ConcatW"; // @ts-ignore - Only used in doc comments import type { ExtendLeft } from "./ExtendLeft"; // @ts-ignore - Only used in doc comments import type ExtendLeftFn from "./ExtendLeft"; // @ts-ignore - Only used in doc comments import type { ExtendW } from "./ExtendW"; // @ts-ignore - Only used in doc comments import type ExtendWFn from "./ExtendW"; import type { Args, GenericFn, GenericResolver } from "../HKT"; /** * Less strict version of {@link ExtendLeft}.The **W** suffix (short for **W**idening) means that * both {@link List}s can hold different types. * * It is actually an alias of {@link ConcatW}. * * Sig: `(ys: List, xs: List) => List` * * @see {@link ExtendW} for the opposite. */ export type ExtendLeftW = ConcatW; interface Resolver extends GenericResolver<[List, List], List> { on1_: ([ys]: Args) => [[List], List]; on_1: ([, xs]: Args) => [[List], List]; on11: ([ys, xs]: Args) => [[], List<(typeof xs)[number] | (typeof ys)[number]>]; } /** * [Fn] Less strict version of {@link ExtendLeftFn}.The **W** suffix (short for **W**idening) means * that both {@link List}s can hold different types. * * It is actually an alias of {@link ConcatWFn}. * * Sig: `(ys: List, xs: List) => List` * * @see {@link ExtendWFn} for the opposite. */ export default interface ExtendLeftWFn extends GenericFn { def: ([ys, xs]: Args) => ConcatW; }