type uri =
{ scheme : string option; authority : authority option; path : string;
query : string option; fragment : string option
}
and authority =
{ host_kind : host_kind; host : string; port : int option;
userinfo : string option
}
and host_kind =
| Reg_name | IPv4address | IP_literal