It would be nice to add an example demonstrating handling all errors with an exhaustive switch (or is Match better?)