/** * @since 2.11.0 */ import { Monoid } from './Monoid' import { Semigroup } from './Semigroup' /** * @since 2.11.0 */ export interface Endomorphism { (a: A): A } /** * @category type lambdas * @since 2.11.0 */ export declare const URI = 'Endomorphism' /** * @category type lambdas * @since 2.11.0 */ export declare type URI = typeof URI declare module './HKT' { interface URItoKind { readonly [URI]: Endomorphism } } /** * Endomorphism form a `Semigroup` where the `concat` operation is the usual function composition. * * @category instances * @since 2.11.0 */ export declare const getSemigroup: () => Semigroup> /** * Endomorphism form a `Monoid` where the `empty` value is the `identity` function. * * @category instances * @since 2.11.0 */ export declare const getMonoid: () => Monoid>