`sig type ('a, 'm) fg type ('wrapped_type, 'a, 'm) wrap val empty : ('a, 'm) BatFingerTree.S.fg val singleton : 'a -> ('a, 'm) BatFingerTree.S.fg val cons : (('a, 'm) BatFingerTree.S.fg -> 'a -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val snoc : (('a, 'm) BatFingerTree.S.fg -> 'a -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val front : (('a, 'm) BatFingerTree.S.fg -> (('a, 'm) BatFingerTree.S.fg * 'a) option, 'a, 'm) BatFingerTree.S.wrap val front_exn : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg * 'a, 'a, 'm) BatFingerTree.S.wrap val head : ('a, 'm) BatFingerTree.S.fg -> 'a option val head_exn : ('a, 'm) BatFingerTree.S.fg -> 'a val last : ('a, 'm) BatFingerTree.S.fg -> 'a option val last_exn : ('a, 'm) BatFingerTree.S.fg -> 'a val tail : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg option, 'a, 'm) BatFingerTree.S.wrap val tail_exn : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val init : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg option, 'a, 'm) BatFingerTree.S.wrap val init_exn : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val rear : (('a, 'm) BatFingerTree.S.fg -> (('a, 'm) BatFingerTree.S.fg * 'a) option, 'a, 'm) BatFingerTree.S.wrap val rear_exn : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg * 'a, 'a, 'm) BatFingerTree.S.wrap val size : ('a, 'm) BatFingerTree.S.fg -> int val is_empty : ('a, 'm) BatFingerTree.S.fg -> bool val fold_left : ('acc -> 'a -> 'acc) -> 'acc -> ('a, 'm) BatFingerTree.S.fg -> 'acc val fold_right : ('acc -> 'a -> 'acc) -> 'acc -> ('a, 'm) BatFingerTree.S.fg -> 'acc val iter : ('a -> unit) -> ('a, 'm) BatFingerTree.S.fg -> unit val iter_right : ('a -> unit) -> ('a, 'm) BatFingerTree.S.fg -> unit val compare : ('a -> 'a -> int) -> ('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg -> int val equal : ('a -> 'a -> bool) -> ('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg -> bool val enum : ('a, 'm) BatFingerTree.S.fg -> 'a BatEnum.t val backwards : ('a, 'm) BatFingerTree.S.fg -> 'a BatEnum.t val to_list : ('a, 'm) BatFingerTree.S.fg -> 'a list val to_list_backwards : ('a, 'm) BatFingerTree.S.fg -> 'a list val of_enum : ('a BatEnum.t -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val of_backwards : ('a BatEnum.t -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val of_list : ('a list -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val of_list_backwards : ('a list -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val map : (('a -> 'b) -> ('a, 'm) BatFingerTree.S.fg -> ('b, 'm) BatFingerTree.S.fg, 'b, 'm) BatFingerTree.S.wrap val map_right : (('a -> 'b) -> ('a, 'm) BatFingerTree.S.fg -> ('b, 'm) BatFingerTree.S.fg, 'b, 'm) BatFingerTree.S.wrap val append : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val reverse : (('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm) BatFingerTree.S.wrap val print : ?first:string -> ?last:string -> ?sep:string -> ('a, 'b) BatIO.printer -> (('a, 'c) BatFingerTree.S.fg, 'b) BatIO.printer end`