Moving Safety into Types

Joshua Emmons demonstrates how we can use the Swift type checker to better handle thrown errors. This is a really nice approach to isolation error handling to the point of creation, rather than the point of use.