Making type manipulation a bit more abstract.