+ let nq = if b then q else
+ let nq = State.make () in
+ if not (StateSet.mem q auto.bottom_states) then
+ auto.bottom_states <- StateSet.add nq auto.bottom_states;
+ if not (StateSet.mem q auto.top_states) then
+ auto.top_states <- StateSet.add nq auto.top_states;
+ nq
+ in