import type { Predicate } from "../Function"; export interface Empty { readonly _tag: "Empty"; } export interface Element { readonly _tag: "Element"; readonly value: A; } export interface Combine { readonly _tag: "Combine"; readonly left: FreeMonoid; readonly right: FreeMonoid; } export interface Filter { readonly _tag: "Filter"; readonly fa: FreeMonoid; readonly f: Predicate; } export interface Map { readonly _tag: "Map"; readonly fa: FreeMonoid; readonly f: (a: A) => A; } export declare type FreeMonoid = Element | Combine | Filter | Map | Empty; //# sourceMappingURL=model.d.ts.map