sig
  type ('a, 'b) t
  module Result :
    sig
      type ('a, 'b) t
      val unit : (unit, string) Dispatch_arg.Spec.Result.t
      val ok : (unit, string) Dispatch_arg.Spec.Result.t
      val bool : (bool, string) Dispatch_arg.Spec.Result.t
      val big_string :
        (Core.Std.Bigstring.t, string) Dispatch_arg.Spec.Result.t
      val string : (string, string) Dispatch_arg.Spec.Result.t
      val int : (int, string) Dispatch_arg.Spec.Result.t
      val list :
        ?sep:string ->
        ('a, string) Dispatch_arg.Spec.Result.t ->
        ('a list, string) Dispatch_arg.Spec.Result.t
      val create : ('-> 'b) -> ('a, 'b) Dispatch_arg.Spec.Result.t
    end
  module Infix :
    sig
      val ( ++ ) :
        ('a, 'b) Dispatch_arg.Spec.t ->
        ('c, 'a) Dispatch_arg.Spec.t -> ('c, 'b) Dispatch_arg.Spec.t
      val ( --> ) :
        ('a, 'b) Dispatch_arg.Spec.t ->
        ('a, 'c) Dispatch_arg.Spec.Result.t -> ('c, 'b) Dispatch_arg.Spec.t
    end
  val ( ++ ) :
    ('a, 'b) Dispatch_arg.Spec.t ->
    ('c, 'a) Dispatch_arg.Spec.t -> ('c, 'b) Dispatch_arg.Spec.t
  val ( --> ) :
    ('a, 'b) Dispatch_arg.Spec.t ->
    ('a, 'c) Dispatch_arg.Spec.Result.t -> ('c, 'b) Dispatch_arg.Spec.t
  val string : string -> ('a, string -> 'a) Dispatch_arg.Spec.t
  val int : string -> ('a, int -> 'a) Dispatch_arg.Spec.t
  val unit : ('a, unit -> 'a) Dispatch_arg.Spec.t
  val list :
    (unit, '-> unit) Dispatch_arg.Spec.t ->
    ('b, 'a list -> 'b) Dispatch_arg.Spec.t
  val option :
    ('a, '-> 'a) Dispatch_arg.Spec.t ->
    ('a, 'b option -> 'a) Dispatch_arg.Spec.t
  val choice :
    ('a, 'b) Dispatch_arg.Spec.t list -> ('a, 'b) Dispatch_arg.Spec.t
  val create :
    (string -> 'a option) -> string -> ('b, '-> 'b) Dispatch_arg.Spec.t
  val map1 :
    f:('-> 'b) ->
    ('c, '-> 'c) Dispatch_arg.Spec.t -> ('c, '-> 'c) Dispatch_arg.Spec.t
  val map2 :
    f:('-> '-> 'c) ->
    ('d, '-> '-> 'd) Dispatch_arg.Spec.t ->
    ('d, '-> 'd) Dispatch_arg.Spec.t
  val map3 :
    f:('-> '-> '-> 'd) ->
    ('e, '-> '-> '-> 'e) Dispatch_arg.Spec.t ->
    ('e, '-> 'e) Dispatch_arg.Spec.t
end