also, final is not valid in this context, its only valid as the "first" type in the chain, i think, when its literally ``Final[T]``, not used in some other one
As order matters, but maybe only one of the parameters in the list shouldn't be changed. Shouldn't it work this way?