Imposter is like a wild card and has no value during normal game play (drawing, discarding, etc). It's only at the final reveal of a round that it's assigned a value. I modeled this as `int option` instead of an enum of `InPlay, One, Two, Three, ...`, which is ugly and annoying.
Comments
type 'imposter t =
| ...
| Imposter of 'imposter
and then use either `unit Rank.t` or `int Rank.t`