Nondeterministic selections are delimited by : in HAC, whereas they were delimited by | in CAST.
In CAST, send and receive actions were written as: X!x or Y!z, but in HAC, send and receive arguments must be enclosed within parenthesis like function call arguments: X!(x) or Y!(z). Rationale: syntactic consistency and disambiguation with the concurrency operator (comma).
HAC supports receive actions that do not write to any variables. Y? acknowledges channel Y without writing its values.