Currently, functions like aggregate require a slice of references as input, however these functions do not necessarily require a slice and can be easily changed to accept any iterator instead. I'd be interested in making a PR for this where AggregatePublicKey and AggregateSignature's aggregation functions replace &[&[T] with impl IntoIterator<Item = &T>. This would require some users of the library to change code, but allows them to avoid allocating to a vector, providing a performance benefit and simplifying code.