How to write types that represent choices.