sig   type ('a, 'm) fg   type ('wrapped_type, 'a, 'm) wrap   val empty : ('a, 'm) BatFingerTree.S.fg   val singleton : '-> ('a, 'm) BatFingerTree.S.fg   val cons :     (('a, 'm) BatFingerTree.S.fg -> '-> ('a, 'm) BatFingerTree.S.fg, 'a,      'm)     BatFingerTree.S.wrap   val snoc :     (('a, 'm) BatFingerTree.S.fg -> '-> ('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 -> '-> 'acc) -> 'acc -> ('a, 'm) BatFingerTree.S.fg -> 'acc   val fold_right :     ('acc -> '-> 'acc) -> 'acc -> ('a, 'm) BatFingerTree.S.fg -> 'acc   val iter : ('-> unit) -> ('a, 'm) BatFingerTree.S.fg -> unit   val iter_right : ('-> unit) -> ('a, 'm) BatFingerTree.S.fg -> unit   val compare :     ('-> '-> int) ->     ('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg -> int   val equal :     ('-> '-> bool) ->     ('a, 'm) BatFingerTree.S.fg -> ('a, 'm) BatFingerTree.S.fg -> bool   val enum : ('a, 'm) BatFingerTree.S.fg -> 'BatEnum.t   val backwards : ('a, 'm) BatFingerTree.S.fg -> '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 :     ('BatEnum.t -> ('a, 'm) BatFingerTree.S.fg, 'a, 'm)     BatFingerTree.S.wrap   val of_backwards :     ('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 :     (('-> 'b) -> ('a, 'm) BatFingerTree.S.fg -> ('b, 'm) BatFingerTree.S.fg,      'b, 'm)     BatFingerTree.S.wrap   val map_right :     (('-> '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