## Goals * Allow consumers to easily detect error type ## Changes: * Use error variables for common errors * Introduce more custom error types * All errors should be one of the following: * A canonical error value * An instance of a custom error type