sig
  type 'a t
  val empty : 'Reins.SkewBinaryList.t
  val is_empty : 'Reins.SkewBinaryList.t -> bool
  val length : 'Reins.SkewBinaryList.t -> int
  val rev : 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val cons : '-> 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val snoc : '-> 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val last : 'Reins.SkewBinaryList.t -> 'a
  val hd : 'Reins.SkewBinaryList.t -> 'a
  val tl : 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val pop : 'Reins.SkewBinaryList.t -> 'a * 'Reins.SkewBinaryList.t
  val append :
    'Reins.SkewBinaryList.t ->
    'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val flatten :
    'Reins.SkewBinaryList.t Reins.SkewBinaryList.t ->
    'Reins.SkewBinaryList.t
  val from_list : 'a list -> 'Reins.SkewBinaryList.t
  val to_list : 'Reins.SkewBinaryList.t -> 'a list
  val iter : ('-> unit) -> 'Reins.SkewBinaryList.t -> unit
  val fold : ('-> '-> 'a) -> '-> 'Reins.SkewBinaryList.t -> 'a
  val rev_map :
    ('-> 'b) -> 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val map :
    ('-> 'b) -> 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
  val to_string : ('-> string) -> 'Reins.SkewBinaryList.t -> string
  val compare :
    ('-> '-> int) ->
    'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t -> int
  val gen :
    (?size:int -> Random.State.t -> 'a) ->
    ?size:int -> Random.State.t -> 'Reins.SkewBinaryList.t
  val lookup : int -> 'Reins.SkewBinaryList.t -> 'a
  val update :
    int -> '-> 'Reins.SkewBinaryList.t -> 'Reins.SkewBinaryList.t
end