i hate variants they are a violation of static typing and the worst mistake of C was union types (the C form of the variant)