Clean up channel structure and involved code #63
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This cleans up the channel structure and makes the separation between channels and string more concrete.
This is in preparation to deal with #59 which may require a better structure.
Implicit conversions still allow the use of strings in place of channels, so everything is backwards compatible.
This seems to have caused a fairly significant decrease in efficiency (Dyer-Simulation takes 50% more time), though it's not exactly clear why. Perhaps comparing a wrapper case class is so much worse than comparing a string directly? Either way, I expect a better substitution algorithm to help massively improve the efficiency compared to the loss incurred here.
This PR also improves scaladocs and unit tests for a few things like
PiObject
s.