|Well-formedness checks for finite state machines.
|An FSM is well-formed if all its actions are the same length,
none of its actions contain destinations which are out of range,
and it is not disjoint.
|BadLengths [(sy, Int)]||Lengths of Actions in the FSM don't all match. Carries a
sorted list of (symbol, Action length) pairs, one for every
symbol in the alphabet of the FSM.
|BadActions [(sy, Action)]||Some Actions contain out-of-range (negative or too-high)
destinations. Carries a sorted list of all such actions and
their corresponding symbols.
|Disconnected [[State]]||The FSM is disconnected, i.e. not even weakly-connected.
Carries a list of its weakly-connected components (each is a
list of States).
|Check if an FSM is well-formed or not.
Given an FSM, normalise it and check it's well-formed.
This should be called whenever an FSM is read/computed from an
outside source. If parsing, the right time to call this is
immediately after you've decided if the parse of the FSM was
successful or not. (In other words, here are some static checks!)
|Produced by Haddock version 2.6.0|