sig
  type ('a, 'b) c = ('-> 'b) -> 'b
  val ( >: ) : '-> (('-> 'b) -> '-> '-> 'd) -> '-> 'd
  val map : ('-> 'b) -> f:'-> 'b
  val fold : (('-> 'a) -> 'c) -> init:'-> f:('-> '-> 'b) -> 'b
  val iter : (('-> 'a) -> 'b) -> f:('-> unit) -> unit
  val length : (('-> 'a) -> 'b) -> int
  val to_list : (('-> 'a) -> 'b) -> 'a list
  val ( >>| ) : ('-> 'b) -> '-> 'b
  val __ : ((('-> 'b) -> '-> 'b) -> 'c) -> 'c
  val list : ('-> '-> 'c) -> (('-> 'b list -> 'c list) -> 'd) -> 'd
  val option :
    ('-> '-> 'c) -> (('-> 'b option -> 'c option) -> 'd) -> 'd
  val ok :
    ('-> '-> 'c) ->
    (('-> ('b, 'd) Core.Std.Result.t -> ('c, 'd) Core.Std.Result.t) -> 'e) ->
    'e
  val error :
    ('-> '-> 'c) ->
    (('-> ('d, 'b) Core.Std.Result.t -> ('d, 'c) Core.Std.Result.t) -> 'e) ->
    'e
  val string : (((char -> char) -> string -> string) -> 'a) -> 'a
end