sig
  type error = Corrupted of (string * string) | Version of int * int
  val pp_error : Stdlib.Format.formatter -> Topkg.Private.Codec.error -> unit
  exception Error of Topkg.Private.Codec.error
  type 'a t
  val v :
    kind:string ->
    enc:('-> string) -> dec:(string -> 'a) -> 'Topkg.Private.Codec.t
  val kind : 'Topkg.Private.Codec.t -> string
  val enc : 'Topkg.Private.Codec.t -> '-> string
  val dec : 'Topkg.Private.Codec.t -> string -> 'a
  val dec_result : 'Topkg.Private.Codec.t -> string -> 'Topkg.result
  val with_kind :
    string -> 'Topkg.Private.Codec.t -> 'Topkg.Private.Codec.t
  val write :
    Topkg.fpath -> 'Topkg.Private.Codec.t -> '-> unit Topkg.result
  val read : Topkg.fpath -> 'Topkg.Private.Codec.t -> 'Topkg.result
  val unit : unit Topkg.Private.Codec.t
  val const : '-> 'Topkg.Private.Codec.t
  val bool : bool Topkg.Private.Codec.t
  val int : int Topkg.Private.Codec.t
  val string : string Topkg.Private.Codec.t
  val option : 'Topkg.Private.Codec.t -> 'a option Topkg.Private.Codec.t
  val result :
    ok:'Topkg.Private.Codec.t ->
    error:'Topkg.Private.Codec.t -> ('a, 'b) Topkg.r Topkg.Private.Codec.t
  val list : 'Topkg.Private.Codec.t -> 'a list Topkg.Private.Codec.t
  val pair :
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t -> ('a * 'b) Topkg.Private.Codec.t
  val t3 :
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t -> ('a * 'b * 'c) Topkg.Private.Codec.t
  val t4 :
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t -> ('a * 'b * 'c * 'd) Topkg.Private.Codec.t
  val t5 :
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    'Topkg.Private.Codec.t ->
    ('a * 'b * 'c * 'd * 'e) Topkg.Private.Codec.t
  val alt :
    kind:string ->
    ('-> int) -> 'Topkg.Private.Codec.t array -> 'Topkg.Private.Codec.t
  val version : int -> 'Topkg.Private.Codec.t -> 'Topkg.Private.Codec.t
  val view :
    ?kind:string ->
    ('-> 'b) * ('-> 'a) ->
    'Topkg.Private.Codec.t -> 'Topkg.Private.Codec.t
  val msg : [ `Msg of string ] Topkg.Private.Codec.t
  val result_error_msg :
    'Topkg.Private.Codec.t -> 'Topkg.result Topkg.Private.Codec.t
  val fpath : Topkg.Fpath.t Topkg.Private.Codec.t
  val cmd : Topkg.Cmd.t Topkg.Private.Codec.t
end