Provides a workaround for generic associated types (GAT) limited to lifetimes (GAL)
Hides struct generics into trait associated types