Structure
Semantic.Analyses.HasAtMostOne
Checks to see if a parent directive has at most one child directive of a specified type. If so, return that child and the remainder.
struct HasAtMostOne<Parent, Child> where Parent : Semantic, Parent : DirectiveConvertible, Child : Semantic, Child : DirectiveConvertible