/**
* `Show` is an abstraction that describes the ability to render a value of
* type `A` to a string.
*
* @tsplus type Show
*/
export interface Show {
readonly Law: {
readonly Show: "Show"
}
readonly show: (a: A) => string
}
/**
* @tsplus type Show/Ops
*/
export interface ShowOps {
(show: (a: A) => string): Show
}
export const Show: ShowOps = (show: (a: A) => string): Show => HKT.instance({ show })