import type { Args, AssertStr, Fn1 } from ".."; import type { TypeClass$$Show } from "../typeclass"; declare module "../typeclass/Show" { interface ShowImpl { string: ImplShowFor; } } /** * Implementation of the {@link Show} type class for `string`. */ export interface Str$$Show extends TypeClass$$Show { Show: string$$Show$ShowFn; } interface string$$Show$ShowFn extends Fn1 { def: ([s]: Args) => string$$Show$Show; } type string$$Show$Show = AssertStr<[string] extends [S] ? "string" : `'${S}'`>;