sig
  type ('a, 'r) t =
      [] : ('r, 'r) CamlinternalFormat.Args.t
    | (::) : 'a *
        ('b, 'r) CamlinternalFormat.Args.t -> ('a -> 'b, 'r)
                                              CamlinternalFormat.Args.t
  val apply : 'a -> ('a, 'r) CamlinternalFormat.Args.t -> 'r
  val ( @ ) :
    ('a, 'r1) CamlinternalFormat.Args.t ->
    ('r1, 'r2) CamlinternalFormat.Args.t ->
    ('a, 'r2) CamlinternalFormat.Args.t
end