import type { List } from "."; import type { Concat } from "./Concat"; // @ts-ignore - Only used in doc comments import type ConcatFn from "./Concat"; // @ts-ignore - Only used in doc comments import type { Extend } from "./Extend"; // @ts-ignore - Only used in doc comments import type ExtendFn from "./Extend"; import type { Args, GenericFn, GenericResolver } from "../HKT"; import type { Broaden } from "../helpers"; /** * Extend a {@link List} by concatenating another {@link List} on the **left**. * * It is actually an alias of {@link Concat}. * * Sig: `(ys: List, xs: List) => List` * * @see {@link Extend} for the opposite. */ export type ExtendLeft = Concat; 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] Extend a {@link List} by concatenating another {@link List} on the **left**. * * It is actually an alias of {@link ConcatFn}. * * Sig: `(ys: List, xs: List) => List` * * @see {@link ExtendFn} for the opposite. */ export default interface ExtendLeftFn extends GenericFn { def: ([ys, xs]: Args) => Concat; }