Module type Signatures.PLUGIN
val the : 'a option -> 'a
val getenv : ?default:string -> string -> string
val with_output_file : ?bin:bool -> string -> (out_channel -> 'a) -> 'a
val with_temp_file : string -> string -> (string -> 'a) -> 'a
val read_file : string -> string
val copy_file : string -> string -> unit
val (&) : ('a -> 'b) -> 'a -> 'b
val (|>) : 'a -> ('a -> 'b) -> 'b
val (@:=) : 'a list ref -> 'a list -> unit
val memo : ('a -> 'b) -> 'a -> 'b
val memo2 : ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
val memo3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> 'd
and spec = Command.spec =
| N
| S of spec list
| A of string
| P of string
| Px of string
| Sh of string
| T of Tags.t
| V of string
| Quote of spec
val rule :
string ->
?tags:string list ->
?prods:string list ->
?deps:string list ->
?prod:string ->
?dep:string ->
?stamp:string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
?doc:string ->
action ->
unit
val copy_rule :
string ->
?insert:[ `after of string | `before of string | `bottom | `top ] ->
string ->
string ->
unit
val clear_rules : unit -> unit
val ocaml_lib :
?extern:bool ->
?byte:bool ->
?native:bool ->
?dir:Pathname.t ->
?tag_name:string ->
Pathname.t ->
unit
val string_list_of_file : Pathname.t -> string list
val module_name_of_pathname : Pathname.t -> string
val hide_package_contents : string -> unit
val run_and_read : string -> string
type hook =
| Before_hygiene
| After_hygiene
| Before_options
| After_options
| Before_rules
| After_rules
val dispatch : (hook -> unit) -> unit