`type 'a t`````
`val string : string t`
`val bool : bool t`
`val int : ?⁠delimiter:char ‑> unit ‑> int t`
`val float : ?⁠decimals:int ‑> ?⁠delimiter:char ‑> ?⁠strip_zero:bool ‑> unit ‑> float t`
`val dollar : float t`
`val percent : Core_kernel.Percent.t t`
`val span : Core_kernel.Time_ns.Span.t t`
`val compact_int : int t`
`val compact_float : float t`
`val compact_dollar : float t`
`val compact_num : ?⁠prepend:string ‑> ?⁠append:string ‑> of_string:(string ‑> 'a) ‑> to_float:('a ‑> Core_kernel.Float.t) ‑> unit ‑> 'a t`
`val option : ?⁠none_string:string ‑> 'a t ‑> 'a option t`

`none_string` encodes how `None` is displayed (default "").

`val or_error : 'a t ‑> 'a Core_kernel.Or_error.t t`
`val user_defined : name:string ‑> of_string:(string ‑> 'a) ‑> to_string:('a ‑> string) ‑> 'a t`