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.