reducer
以下を表現できる
取りうる状態を全て型で明示したい
許される状態の遷移を全て明示したい