/** * `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 })