Distributive for Generic types