sig
  module List :
    sig
      type 'a t = 'a list
      val compare :
        ('-> '-> int) ->
        'Misc.Stdlib.List.t -> 'Misc.Stdlib.List.t -> int
      val equal :
        ('-> '-> bool) ->
        'Misc.Stdlib.List.t -> 'Misc.Stdlib.List.t -> bool
      val filter_map :
        ('-> 'b option) -> 'Misc.Stdlib.List.t -> 'Misc.Stdlib.List.t
      val some_if_all_elements_are_some :
        'a option Misc.Stdlib.List.t -> 'Misc.Stdlib.List.t option
      val map2_prefix :
        ('-> '-> 'c) ->
        'Misc.Stdlib.List.t ->
        'Misc.Stdlib.List.t ->
        'Misc.Stdlib.List.t * 'Misc.Stdlib.List.t
      val split_at :
        int ->
        'Misc.Stdlib.List.t ->
        'Misc.Stdlib.List.t * 'Misc.Stdlib.List.t
    end
  module Option :
    sig
      type 'a t = 'a option
      val equal :
        ('-> '-> bool) ->
        'Misc.Stdlib.Option.t -> 'Misc.Stdlib.Option.t -> bool
      val iter : ('-> unit) -> 'Misc.Stdlib.Option.t -> unit
      val map :
        ('-> 'b) -> 'Misc.Stdlib.Option.t -> 'Misc.Stdlib.Option.t
      val fold : ('-> '-> 'b) -> 'Misc.Stdlib.Option.t -> '-> 'b
      val value_default :
        ('-> 'b) -> default:'-> 'Misc.Stdlib.Option.t -> 'b
    end
  module Array :
    sig val exists2 : ('-> '-> bool) -> 'a array -> 'b array -> bool end
end