aboutsummaryrefslogtreecommitdiff
path: root/lib/path/path.mli
blob: e5b50291aba2ec6d4b728e8e276cd36b4e3424a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(** Describe the components in the path *)
type _ typ =
  | Int : int64 typ
  | String : string typ
  | Fixed : V_string.t -> unit typ

type _ t =
  | [] : unit t
  | ( :: ) : 'x t * 'y t -> ('x * 'y) t
  | T1 : 'a typ -> 'a t
  | T2 : 'a typ * 'b typ -> ('a * 'b) t
  | T3 : 'a typ * 'b typ * 'c typ -> ('a * 'b * 'c) t
  | T4 : 'a typ * 'b typ * 'c typ * 'd typ -> ('a * 'b * 'c * 'd) t

val unzip : 'a t -> (string -> string) -> 'a
val repr : 'a t -> V_string.t
val repr' : 'a t -> string
val build : 'a -> 'a t -> V_string.t