sig
  type nobody = nobody
  type me = me
  module Read :
    sig
      type t = Perms.Read.t
      val t_of_sexp : Sexplib.Sexp.t -> Perms.Stable.V1.Read.t
      val sexp_of_t : Perms.Stable.V1.Read.t -> Sexplib.Sexp.t
      val compare : Perms.Stable.V1.Read.t -> Perms.Stable.V1.Read.t -> int
      val bin_t : Perms.Stable.V1.Read.t Bin_prot.Type_class.t
      val bin_read_t : Perms.Stable.V1.Read.t Bin_prot.Read.reader
      val __bin_read_t__ :
        (int -> Perms.Stable.V1.Read.t) Bin_prot.Read.reader
      val bin_reader_t : Perms.Stable.V1.Read.t Bin_prot.Type_class.reader
      val bin_size_t : Perms.Stable.V1.Read.t Bin_prot.Size.sizer
      val bin_write_t : Perms.Stable.V1.Read.t Bin_prot.Write.writer
      val bin_writer_t : Perms.Stable.V1.Read.t Bin_prot.Type_class.writer
    end
  module Write :
    sig
      type t = Perms.Write.t
      val t_of_sexp : Sexplib.Sexp.t -> Perms.Stable.V1.Write.t
      val sexp_of_t : Perms.Stable.V1.Write.t -> Sexplib.Sexp.t
      val compare : Perms.Stable.V1.Write.t -> Perms.Stable.V1.Write.t -> int
      val bin_t : Perms.Stable.V1.Write.t Bin_prot.Type_class.t
      val bin_read_t : Perms.Stable.V1.Write.t Bin_prot.Read.reader
      val __bin_read_t__ :
        (int -> Perms.Stable.V1.Write.t) Bin_prot.Read.reader
      val bin_reader_t : Perms.Stable.V1.Write.t Bin_prot.Type_class.reader
      val bin_size_t : Perms.Stable.V1.Write.t Bin_prot.Size.sizer
      val bin_write_t : Perms.Stable.V1.Write.t Bin_prot.Write.writer
      val bin_writer_t : Perms.Stable.V1.Write.t Bin_prot.Type_class.writer
    end
  module Immutable :
    sig
      type t = Perms.Immutable.t
      val t_of_sexp : Sexplib.Sexp.t -> Perms.Stable.V1.Immutable.t
      val sexp_of_t : Perms.Stable.V1.Immutable.t -> Sexplib.Sexp.t
      val compare :
        Perms.Stable.V1.Immutable.t -> Perms.Stable.V1.Immutable.t -> int
      val bin_t : Perms.Stable.V1.Immutable.t Bin_prot.Type_class.t
      val bin_read_t : Perms.Stable.V1.Immutable.t Bin_prot.Read.reader
      val __bin_read_t__ :
        (int -> Perms.Stable.V1.Immutable.t) Bin_prot.Read.reader
      val bin_reader_t :
        Perms.Stable.V1.Immutable.t Bin_prot.Type_class.reader
      val bin_size_t : Perms.Stable.V1.Immutable.t Bin_prot.Size.sizer
      val bin_write_t : Perms.Stable.V1.Immutable.t Bin_prot.Write.writer
      val bin_writer_t :
        Perms.Stable.V1.Immutable.t Bin_prot.Type_class.writer
    end
  module Read_write :
    sig
      type t = Perms.Read_write.t
      val t_of_sexp : Sexplib.Sexp.t -> Perms.Stable.V1.Read_write.t
      val sexp_of_t : Perms.Stable.V1.Read_write.t -> Sexplib.Sexp.t
      val compare :
        Perms.Stable.V1.Read_write.t -> Perms.Stable.V1.Read_write.t -> int
      val bin_t : Perms.Stable.V1.Read_write.t Bin_prot.Type_class.t
      val bin_read_t : Perms.Stable.V1.Read_write.t Bin_prot.Read.reader
      val __bin_read_t__ :
        (int -> Perms.Stable.V1.Read_write.t) Bin_prot.Read.reader
      val bin_reader_t :
        Perms.Stable.V1.Read_write.t Bin_prot.Type_class.reader
      val bin_size_t : Perms.Stable.V1.Read_write.t Bin_prot.Size.sizer
      val bin_write_t : Perms.Stable.V1.Read_write.t Bin_prot.Write.writer
      val bin_writer_t :
        Perms.Stable.V1.Read_write.t Bin_prot.Type_class.writer
    end
  module Upper_bound :
    sig
      type 'a t = 'Perms.Upper_bound.t
      val t_of_sexp :
        (Sexplib.Sexp.t -> 'a) ->
        Sexplib.Sexp.t -> 'Perms.Stable.V1.Upper_bound.t
      val sexp_of_t :
        ('-> Sexplib.Sexp.t) ->
        'Perms.Stable.V1.Upper_bound.t -> Sexplib.Sexp.t
      val compare :
        ('-> '-> int) ->
        'Perms.Stable.V1.Upper_bound.t ->
        'Perms.Stable.V1.Upper_bound.t -> int
      val bin_t :
        'Bin_prot.Type_class.t ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Type_class.t
      val bin_read_t :
        'Bin_prot.Read.reader ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Read.reader
      val __bin_read_t__ :
        'Bin_prot.Read.reader ->
        (int -> 'Perms.Stable.V1.Upper_bound.t) Bin_prot.Read.reader
      val bin_reader_t :
        'Bin_prot.Type_class.reader ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Type_class.reader
      val bin_size_t :
        'Bin_prot.Size.sizer ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Size.sizer
      val bin_write_t :
        'Bin_prot.Write.writer ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Write.writer
      val bin_writer_t :
        'Bin_prot.Type_class.writer ->
        'Perms.Stable.V1.Upper_bound.t Bin_prot.Type_class.writer
    end
  val nobody_of_sexp : Sexplib.Sexp.t -> Perms.nobody
  val sexp_of_nobody : Perms.nobody -> Sexplib.Sexp.t
  val compare_nobody : Perms.nobody -> Perms.nobody -> int
  val bin_nobody : Perms.nobody Bin_prot.Type_class.t
  val bin_read_nobody : Perms.nobody Bin_prot.Read.reader
  val __bin_read_nobody__ : (int -> Perms.nobody) Bin_prot.Read.reader
  val bin_reader_nobody : Perms.nobody Bin_prot.Type_class.reader
  val bin_size_nobody : Perms.nobody Bin_prot.Size.sizer
  val bin_write_nobody : Perms.nobody Bin_prot.Write.writer
  val bin_writer_nobody : Perms.nobody Bin_prot.Type_class.writer
  val me_of_sexp : Sexplib.Sexp.t -> Perms.me
  val sexp_of_me : Perms.me -> Sexplib.Sexp.t
  val compare_me : Perms.me -> Perms.me -> int
  val bin_me : Perms.me Bin_prot.Type_class.t
  val bin_read_me : Perms.me Bin_prot.Read.reader
  val __bin_read_me__ : (int -> Perms.me) Bin_prot.Read.reader
  val bin_reader_me : Perms.me Bin_prot.Type_class.reader
  val bin_size_me : Perms.me Bin_prot.Size.sizer
  val bin_write_me : Perms.me Bin_prot.Write.writer
  val bin_writer_me : Perms.me Bin_prot.Type_class.writer
end