# Generic associated type

trait Container { type Member<T>; }

==>

SourceFile(
  TraitItem(
    trait,
    TypeIdentifier,
    DeclarationList(AssociatedType(type, TypeIdentifier, TypeParamList(TypeIdentifier)))))

# Generic associated type with a where clause

trait Lending { type Item<'a> where Self: 'a; }

==>

SourceFile(
  TraitItem(
    trait,
    TypeIdentifier,
    DeclarationList(
      AssociatedType(
        type,
        TypeIdentifier,
        TypeParamList(Lifetime),
        WhereClause(where, TypeBoundClause(TypeIdentifier, TraitBounds(Lifetime)))))))
