`sig
type current_phase = Parser | Invariant_check
val register_attr :
Builtin_attributes.current_phase -> string Location.loc -> unit
val mark_payload_attrs_used : Parsetree.payload -> unit
val warn_unused : unit -> unit
val mark_alert_used : Parsetree.attribute -> unit
val mark_alerts_used : Parsetree.attributes -> unit
val mark_warn_on_literal_pattern_used : Parsetree.attributes -> unit
val mark_deprecated_mutable_used : Parsetree.attributes -> unit
val check_alerts : Location.t -> Parsetree.attributes -> string -> unit
val check_alerts_inclusion :
def:Location.t ->
use:Location.t ->
Location.t ->
Parsetree.attributes -> Parsetree.attributes -> string -> unit
val alerts_of_attrs : Parsetree.attributes -> Misc.alerts
val alerts_of_sig : mark:bool -> Parsetree.signature -> Misc.alerts
val alerts_of_str : mark:bool -> Parsetree.structure -> Misc.alerts
val check_deprecated_mutable :
Location.t -> Parsetree.attributes -> string -> unit
val check_deprecated_mutable_inclusion :
def:Location.t ->
use:Location.t ->
Location.t ->
Parsetree.attributes -> Parsetree.attributes -> string -> unit
val error_of_extension : Parsetree.extension -> Location.error
val warning_attribute : ?ppwarning:bool -> Parsetree.attribute -> unit
val warning_scope :
?ppwarning:bool -> Parsetree.attributes -> (unit -> 'a) -> 'a
val has_attribute : string -> Parsetree.attributes -> bool
type attr_action = Mark_used_only | Return
val select_attributes :
(string * Builtin_attributes.attr_action) list ->
Parsetree.attributes -> Parsetree.attributes
val attr_equals_builtin : Parsetree.attribute -> string -> bool
val warn_on_literal_pattern : Parsetree.attributes -> bool
val explicit_arity : Parsetree.attributes -> bool
val immediate : Parsetree.attributes -> bool
val immediate64 : Parsetree.attributes -> bool
val has_unboxed : Parsetree.attributes -> bool
val has_boxed : Parsetree.attributes -> bool
val has_remove_aliases : Parsetree.attributes -> bool
val has_atomic : Parsetree.attributes -> bool
end`