Module Floating.Poly

type kind =
  1. | Never_add_mangler
  2. | Always_add_mangler
  3. | Add_mangler_if_more_than_one_elt
    (*

    Behaves like Always_add_mangler if the set on the RHS of the binding, when evaluated with Expand_atoms_bound_to_sets, has more than one element, and like Never_add_mangler otherwise.

    For Add_mangler_if_more_than_one_elt specifically, we only permit exactly one (_, singleton) Expression.t on the RHS. Loosely speaking, if the expression on the RHS contains a Union, it is probably true that it always evaluates to a set with more than one element, and the Always_add_mangler version of the attribute should be used instead.

    *)
type t = {
  1. bindings : Poly.t;
  2. kind : kind;
}
val is_present : ('a, poly) Context.t -> 'a -> bool

Check if the provided ast node is a floating poly template attribute. Does not mark the attribute as seen.