I'm not sure about splitting the error types up here. For one thing it discards the extra information that seraph sidecars with its errors (see [here](https://github.com/brikteknologier/seraph/blob/master/lib/seraph.js#L149)), but for another these error types are not not exposed, so there's no advantage in having this custom types over just setting the `type` and `value` properties on a regular `Error` object.