sig
  type ocb_hook = Ocamlbuild_plugin.hook -> unit
  type path = Ocamlbuild_plugin.Pathname.t
  val init :
    ?incdirs:bool -> ?mllibs:Ocb_stubblr.path list -> Ocb_stubblr.ocb_hook
  val ocaml_libs : ?mllibs:Ocb_stubblr.path list -> Ocb_stubblr.ocb_hook
  val include_include_dirs : Ocb_stubblr.ocb_hook
  val ccopt : ?tags:string list -> string -> Ocb_stubblr.ocb_hook
  val cclib : ?tags:string list -> string -> Ocb_stubblr.ocb_hook
  val ldopt : ?tags:string list -> string -> Ocb_stubblr.ocb_hook
  val after_rules : (unit -> unit) -> Ocb_stubblr.ocb_hook
  val dispatchv : Ocb_stubblr.ocb_hook list -> unit
  val ( & ) :
    Ocb_stubblr.ocb_hook -> Ocb_stubblr.ocb_hook -> Ocb_stubblr.ocb_hook
  module Pkg_config :
    sig
      val run :
        flags:string list -> string -> [ `Nonexistent | `Res of string ]
    end
  type os =
      [ `AIX
      | `Cygwin of string
      | `Darwin
      | `DragonFly
      | `FreeBSD
      | `HP_UX
      | `Haiku
      | `Hurd
      | `Interix
      | `KFreeBSD
      | `Linux
      | `Mingw of string
      | `Minix
      | `NetBSD
      | `OpenBSD
      | `QNX
      | `SunOS
      | `UNKNOWN of string
      | `Uwin of string ]
  type machine = [ `ARMv6 | `ARMv7 | `UNKNOWN of string | `x86 | `x86_64 ]
  val os : unit -> Ocb_stubblr.os
  val machine : unit -> Ocb_stubblr.machine
end