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