package decompress

  1. Overview
  2. Docs
type 'a digit =
  1. | Zero
  2. | One of 'a
  3. | Two of 'a * 'a
  4. | Three of 'a * 'a * 'a
type 'a t =
  1. | Shallow of 'a digit
  2. | Deep of int * 'a digit * ('a * 'a) t Lazy.t * 'a digit
val empty : 'a t
val is_empty : 'a t -> bool
val _single : 'a -> 'b t
val _double : 'a -> 'b -> 'c t
val _three : 'a -> 'b -> 'c -> 'd t
val _deep : int -> 'a digit -> ('a * 'a) t Lazy.t -> 'a digit -> 'a t
val _empty : 'a t Lazy.t
val cons : 'a. 'a -> 'a t -> 'a t
exception Empty
val take_front_exn : 'a. 'a t -> 'a * 'a t
val take_front : 'a t -> ('a * 'a t) option
val add_seq_front : (('a -> unit) -> 'b) -> 'c t -> 'c t
val of_seq : (('a -> unit) -> 'b) -> 'a t