The initial assembly format introduced as part of 9fef8a5 for the two bundling-related operations is very verbose, especially when used for channel types with extra signals. In particular, there is redundancy between the channel type and the type of the individual signals that are being bundled into or unbundled from it. There is also redundancy between the operand types and the result types; the exact handshake::ChannelType or handshake::ControlType involved in the operation is sufficient to characterize the type of all operands/results uniquely.
The initial assembly format introduced as part of 9fef8a5 for the two bundling-related operations is very verbose, especially when used for channel types with extra signals. In particular, there is redundancy between the channel type and the type of the individual signals that are being bundled into or unbundled from it. There is also redundancy between the operand types and the result types; the exact
handshake::ChannelType
orhandshake::ControlType
involved in the operation is sufficient to characterize the type of all operands/results uniquely.Below are proposed simplification examples.
Implementing the above syntax requires custom parsers/printers, as ODS won't let us specify this declaratively.
This is related to the type system redesign (#86).