import { Semigroup, combine } from "./semigroup";
export interface Monoid extends Semigroup {
identity: () => A;
}
export interface MonoidDictionary> {
identity: () => M;
}
export interface MonoidConstructor> {
create(a: A): M;
identity: () => M;
}
export declare type AnyMonoid = string | Array | Monoid;
export declare function identity(m: ArrayConstructor): any[];
export declare function identity(m: StringConstructor): string;
export declare function identity>(m: MonoidDictionary): M;
export { combine };