You cannot do this because the >>= operator is of type
ParsecT suma -> (a -> ParsecT sumb) -> ParsecT sumb
and (<*>) like
ParsecT sum (a -> b) -> ParsecT suma -> ParsecT sumb
The variable s universally quantified, but must coincide with both terms. Without >>= or <*> you cannot use applicative or monadic functions. This means that you would have absolutely no way to combine parsers with different states. The best way to do this is simply
data PotentialStates = State1 ... | State2 ... | State3 ...
and then just work with them.
source share