`type 'a t =`

1. `| Nil : unit t`
2. `| Cons : 'a * 'b t -> ('a * 'b) t`

Heterogeneous tuple, used to pass any number of arguments to a function.

`val nil : unit t`
`val cons : 'a -> 'b t -> ('a * 'b) t`
`type 'a obs`

How to observe a `'a t`

`val o_nil : unit obs`
`val o_cons : 'a Observable.t -> 'b obs -> ('a * 'b) obs`
`module Infix : sig ... end`
`include module type of Infix`
`val (@::) : 'a -> 'b t -> ('a * 'b) t`

Alias to `cons`.

`val (@->) : 'a Observable.t -> 'b obs -> ('a * 'b) obs`

Alias to `o_cons`.

`val observable : 'a obs -> 'a t Observable.t`