A library to deal with RPCs in OCaml
type 'a t = {
name : string option;
description : string list;
typedef : 'a Rpc.Types.def;
version : Rpc.Version.t option;

A Param.t has a name, description and a typedef. We may also want to add in here default values, example values and so on

type boxed =
| Boxed : 'a t -> boxed

We box parameters to put them into lists

val mk : ?name:string -> ?description:string list -> ?version:Rpc.Version.t -> 'a Rpc.Types.def -> 'a t

mk ~name ~description typ creates a Param.t out of a type definition from the Types module. If the name or description are omitted, the name or description from the type definition will be inherited