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