export interface Semiring {
readonly add_: (x: A, y: A) => A;
readonly add: (y: A) => (x: A) => A;
readonly mul_: (x: A, y: A) => A;
readonly mul: (y: A) => (x: A) => A;
readonly zero: A;
readonly one: A;
}
export declare type SemiringMin = {
readonly add_: (x: A, y: A) => A;
readonly mul_: (x: A, y: A) => A;
readonly zero: A;
readonly one: A;
};
export declare function Semiring(S: SemiringMin): Semiring;
export declare const getFunctionSemiring: (S: Semiring) => Semiring<(a: A) => B>;
//# sourceMappingURL=Semiring.d.ts.map