-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add Parallel and Alternative constructors
- Loading branch information
Marco Perone
committed
Jan 26, 2023
1 parent
6ca0b7b
commit 1f84a65
Showing
5 changed files
with
82 additions
and
14 deletions.
There are no files selected for viewing
23 changes: 23 additions & 0 deletions
23
decision-log/2023-01-17-add-parallel-and-alternative-constructors.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: Add Parallel and Alternative constructors | ||
date: 2023-01-17 | ||
context: > | ||
Mealy machine, at least in theory, admit an instance for `Strong` and | ||
`Choice` type classes, to allow parallel and alternative composition. | ||
In our current implementation, we could implement `Strong` and `Choice` just | ||
by forwarding the composition to the `BaseMachine` layer. | ||
Still everytime that we are combining two state machine, either sequentially, | ||
in parallel or in alternative, the set of states is always the cartesian | ||
product of the sets of states. It follows that we would not be able to | ||
understand | ||
decision: > | ||
We decide to add specific constructors for parallel and alternative | ||
composition. | ||
consequences: > | ||
We will be able to keep track of how a state machine is built. | ||
Moreover we will be able to draw not only the set of spaces with allowed | ||
transitions, but also a | ||
[wiring diagram](https://math.mit.edu/~dspivak/informatics/talks/WD-IntroductoryTalk.pdf) | ||
representing the flow of information through the machine. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters