An enum has one payload case carrying a class reference and several no-payload cases. How does Swift typically store the no-payload cases without growing the type beyond pointer size?
enum Ref {
case object(AnyObject)
case empty
case pending
case failed
}