Users in this case would be other devs using the gender library. They should have enough technical knowledge to handle it.
You could also include common gender implementations in the library. Then we could start getting enterprise^tm^ and include a GenderClassFactory that constructs Gender classes.
That second one really seemed to miss the point of non-binary and thought they could get around it by just using the gender binary multiple time.
I think the proper solution is to create an abstract gender class and leave it to the user to implement their specific gender.
That’s not very user-friendly. And impractical for >99% of users.
Users in this case would be other devs using the gender library. They should have enough technical knowledge to handle it.
You could also include common gender implementations in the library. Then we could start getting enterprise^tm^ and include a GenderClassFactory that constructs Gender classes.