Module Ppxlib.Attribute

type ('context, 'payload) t
type packed =
  1. | T : ('a, 'b) t -> packed
module Context : sig ... end
val declare : string -> 'a Context.t -> (Parsetree.payload, 'b, 'c) Ppxlib__.Ast_pattern0.t -> 'b -> ('a, 'c) t
val declare_with_name_loc : string -> 'a Context.t -> (Parsetree.payload, 'b, 'c) Ppxlib__.Ast_pattern0.t -> (name_loc:Astlib.Location.t -> 'b) -> ('a, 'c) t
val declare_with_attr_loc : string -> 'a Context.t -> (Parsetree.payload, 'b, 'c) Ppxlib__.Ast_pattern0.t -> (attr_loc:Astlib.Location.t -> 'b) -> ('a, 'c) t
type 'a flag = ('a, unit) t
val declare_flag : string -> 'a Context.t -> 'a flag
val name : ('a, 'b) t -> string
val context : ('a, 'b) t -> 'a Context.t
val get_res : ('a, 'b) t -> ?mark_as_seen:bool -> 'a -> ('b option, Ppxlib__.Location.Error.t Stdppx.NonEmptyList.t) result
val get : ('a, 'b) t -> ?mark_as_seen:bool -> 'a -> 'b option
val has_flag_res : 'a flag -> ?mark_as_seen:bool -> 'a -> (bool, Ppxlib__.Location.Error.t Stdppx.NonEmptyList.t) result
val has_flag : 'a flag -> ?mark_as_seen:bool -> 'a -> bool
val consume_res : ('a, 'b) t -> 'a -> (('a * 'b) option, Ppxlib__.Location.Error.t Stdppx.NonEmptyList.t) result
val consume : ('a, 'b) t -> 'a -> ('a * 'b) option
val remove_seen_res : 'a Context.t -> packed list -> 'a -> ('a, Ppxlib__.Location.Error.t Stdppx.NonEmptyList.t) result
val remove_seen : 'a Context.t -> packed list -> 'a -> 'a
module Floating : sig ... end
val explicitly_drop : Ppxlib__.Ast_traverse0.iter
val check_unused : Ppxlib__.Ast_traverse0.iter
val collect_unused_attributes_errors : Ppxlib__.Location.Error.t list Ppxlib__.Ast_traverse0.fold
val collect : Ppxlib__.Ast_traverse0.iter
val collect_unseen_errors : unit -> Ppxlib__.Location.Error.t list
val check_all_seen : unit -> unit
val mark_as_handled_manually : Parsetree.attribute -> unit
val dropped_so_far_structure : Parsetree.structure_item list -> string Astlib.Location.loc list
val dropped_so_far_signature : Parsetree.signature_item list -> string Astlib.Location.loc list
val reset_checks : unit -> unit
val pattern : ('a, 'b) t -> ('a, 'c, 'd) Ppxlib__.Ast_pattern0.t -> ('a, 'b option -> 'c, 'd) Ppxlib__.Ast_pattern0.t
val pattern_res : ('a, 'b) t -> ('a, 'c, 'd) Ppxlib__.Ast_pattern0.t -> ('a, 'b option -> 'c, ('d, Ppxlib__.Location.Error.t Stdppx.NonEmptyList.t) result) Ppxlib__.Ast_pattern0.t