sig
  type std_args_fun =
      ctxt:OASISContext.t ->
      OASISTypes.package -> OASISTypes.arg array -> unit
  type ('a, 'b) section_args_fun =
      OASISTypes.name *
      (ctxt:OASISContext.t ->
       OASISTypes.package ->
       OASISTypes.common_section * '-> OASISTypes.arg array -> 'b)
  type t = {
    configure : BaseSetup.std_args_fun;
    build : BaseSetup.std_args_fun;
    doc : (OASISTypes.doc, unit) BaseSetup.section_args_fun list;
    test : (OASISTypes.test, float) BaseSetup.section_args_fun list;
    install : BaseSetup.std_args_fun;
    uninstall : BaseSetup.std_args_fun;
    clean : BaseSetup.std_args_fun list;
    clean_doc : (OASISTypes.doc, unit) BaseSetup.section_args_fun list;
    clean_test : (OASISTypes.test, unit) BaseSetup.section_args_fun list;
    distclean : BaseSetup.std_args_fun list;
    distclean_doc : (OASISTypes.doc, unit) BaseSetup.section_args_fun list;
    distclean_test : (OASISTypes.test, unit) BaseSetup.section_args_fun list;
    package : OASISTypes.package;
    oasis_fn : string option;
    oasis_version : string;
    oasis_digest : Digest.t option;
    oasis_exec : string option;
    oasis_setup_args : string list;
    setup_update : bool;
  }
  val configure :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val build :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val doc :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val test :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val install :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val uninstall :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val clean :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val distclean :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val reinstall :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val all :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val version :
    ctxt:OASISContext.t -> BaseSetup.t -> OASISTypes.arg array -> unit
  val setup : BaseSetup.t -> unit
  val default_oasis_fn : OASISTypes.host_filename
  val default_filename : OASISTypes.host_filename
  val find : OASISPlugin.context_act -> OASISFileTemplate.template
  val of_package :
    ?ctxt:OASISContext.t ->
    ?oasis_fn:OASISTypes.host_filename ->
    ?oasis_exec:OASISTypes.host_filename ->
    ?oasis_setup_args:string list ->
    setup_update:bool ->
    OASISSetupUpdate.t ->
    OASISTypes.package -> OASISPlugin.context_act * BaseSetup.t
end