Sets a new variant list.
Frees the previous variant list. This is primarily useful for bindings, in C you can manipulate the variants record member
directly.
| this |
record to change |
| new_variants |
zero terminated list of new variant names. |