Much better generics support