Typically when a channel is configured as a source, the data-rails have no fanin from the production rules, and the acknowledge is driven by the production rules. When this is not the case, the simulator issues a warning:
Warning: channel acknowledge `$1.a/e' has no fanin! Warning: channel data rail `$1' ($2,$3) has fanin.
While this is not fatal, it usually indicates a user-error in configuration.
Likewise, sinks expect to have data rails driven by production rules, and the acknowledge fanout to production rules.
Channels also expect data rails to behave sanely, maintaing mutual exclusion within each data bundle. Violation will produce:
Channel data rails are in an invalid state! In channel `$1', got $2 high rails, whereas only $3 are permitted.
This is similar in meaning to exclusion violations.
TODO: this section doesn't exhaust the list of diagnostic message. Add as needed.