/**
* @tsplus type Closure
*/
export interface Closure {
readonly Law: { readonly Closure: "Closure" }
readonly combine: (x: A, y: A) => A
}
/**
* @tsplus type Closure/Ops
*/
export interface ClosureOps {
(combine: (x: A, y: A) => A): Closure
}
export const Closure: ClosureOps = (combine: (x: A, y: A) => A): Closure =>
HKT.instance({ combine })