Drive kind inference with special types

The second commit has the details.