/**
* A (experimental) lazy singly-linked list implementation. Similar to Haskell's `List`
*/
import type * as HKT from "@principia/prelude/HKT";
import type { Lazy } from "../Function";
export interface Nil {
readonly _tag: "Nil";
}
export declare type Cons = {
readonly _tag: "Cons";
readonly head: Lazy;
readonly tail: Lazy>;
};
export declare type LazyList = Nil | Cons;
export declare const errorEmptyList: (fun: string) => never;
export declare type InferListType = T extends LazyList ? A : never;
export declare const URI = "List";
export declare type URI = typeof URI;
export declare type V = HKT.Auto;
declare module "@principia/prelude/HKT" {
interface URItoKind {
[URI]: LazyList;
}
}
//# sourceMappingURL=model.d.ts.map