`type -'a t`

An observable for `'a`, packing a printer and other things.

`val equal : 'a t -> 'a -> 'a -> bool`
`val hash : 'a t -> 'a -> int`
`val print : 'a t -> 'a Print.t`
`val unit : unit t`
`val bool : bool t`
`val int : int t`
`val int32 : int32 t`

- since 0.24

`val int64 : int64 t`

- since 0.24

- since 0.24

`val float : float t`

- since 0.24

`val string : string t`
`val bytes : bytes t`

- since 0.20

`val char : char t`

- since 0.20

`val make : ?eq:('a -> 'a -> bool) -> ?hash:('a -> int) -> 'a Print.t -> 'a t`
`val map : ('a -> 'b) -> 'b t -> 'a t`
`val option : 'a t -> 'a option t`
`val result : 'a t -> 'e t -> ('a, 'e) Stdlib.result t`

- since 0.24

`val list : 'a t -> 'a list t`

- since 0.24

`val array : 'a t -> 'a array t`
`val pair : 'a t -> 'b t -> ('a * 'b) t`
`val triple : 'a t -> 'b t -> 'c t -> ('a * 'b * 'c) t`
`val quad : 'a t -> 'b t -> 'c t -> 'd t -> ('a * 'b * 'c * 'd) t`