Combining Types

Types can be combined to create new types, using intersection types
to further restrict values, and sum types to allow more acceptable values.