The empty command represents the absence of any command to perform
The names of the product elements
The name of the type
The mirrored *-type
Transforms the type of messages produced by the command
Infix operation for combining two Cmds into one.
Create a new instance of type T with elements taken from product p.
T
p
Infix operator for combining two Cmds into one.