design Allocators Custom Arithmetic Types Custom Literal Types Data Structure Traversal Approaches Design Principles Design Study: Angle-Axis Rotation Design Study: Function Interfaces Polymorphic Copying