Right now, creating a new version of a protocol involves re-declaring all of the messages again:
[record A]
[record B]
[record C]
[record D]
[protocol D
[version 1 A B C]
[version 2 A B C D]
[version 3 B C D]
]
When the number of messages is large, this is unwieldy. It might be better to introduce the concept of protocol expressions that are evaluated to yield a final protocol. Nothing needs to change with regards to type checking, code generation, or otherwise.
Right now, creating a new version of a protocol involves re-declaring all of the messages again:
When the number of messages is large, this is unwieldy. It might be better to introduce the concept of protocol expressions that are evaluated to yield a final protocol. Nothing needs to change with regards to type checking, code generation, or otherwise.