Generalize state type