is ```error``` guaranteed to always be an instance of ```Error```?