Restructured types and protocols.