Also for now we're still using conditions and it's best to stay consistent even though we're thinking of removing them. This should probably return `Option<GZip>` and raise on `io::io_error` with an appropriate error in an error condition.