pub fn impl_trait(
is_unsafe: bool,
trait_gen_params: Option<GenericParamList>,
trait_gen_args: Option<GenericArgList>,
type_gen_params: Option<GenericParamList>,
type_gen_args: Option<GenericArgList>,
is_negative: bool,
path_type: Type,
ty: Type,
trait_where_clause: Option<WhereClause>,
ty_where_clause: Option<WhereClause>,
body: Option<Vec<Either<Attr, AssocItem>>>,
) -> Impl