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