EnumやUnionは排他的(和)な状態を持つことができるものといえる。 逆に共存(積)する状態は通常のStructなどだね。 もしこれらを組み合わせられるなら、複雑に入り混じる条件を実現させることができる 代数的データ型ADTとは?