Are your genders object oriented?
Can they be expressed in trinary?
Do they accept NULL or NaN inputs, or do they need to be safely initialized with a sentinel value?