Custom Types for Powerful Matching

Joshua Emmons show us how we can use Swift custom types to implement powerful pattern matching. Joshua overloads the ~= operator using newly-defined types to clean up a hard to read switch statement.