Признаться, я запутался в именовании. Почему ShellState параметризуется как State, а метром ниже его ждет Shell, который тоже параметризуется как State?