instead of doing EncodeError here, could we encode the error inside benchmarker and avoid exporting EncodableError? (that way, anything we benchmark would already have an appropriate error and we wouldn't need this externally). Alternatively we could pull EncodableError in to a util module, but ideally it'd be better to just have the errors that come from benchmarker already be encodable.