type Circuit struct {
Gate map[Name]Value
Flow map[Name]map[Name]Vector
}
indicates that a Circuit has two members
1) a member called Gate which is a map of Name keys vs Value items
2) a member called Flow which is a map of Name keys vs Vector items
This would mean that
Value ~= Process
Personally, I don't think that using the Go syntax is helping legibility, but I am not a Go developer.
As for Escher itself, the documentation that I have read so far seems to involve a lot of handwaving and toy examples.
The circuit index "sugar-free syntax" is terse to the point of non-comprehension, and the accompanying documentation is largely content-free.
I did see the sub-circuit thing, but their example defined the sub-circuit in the main circuit.
And maybe I missed it, but I didn't see an example of using an externally defined sub-circuit
(and for me, if that were lacking, it would be a showstopper right there)
So maybe Escher is good or maybe it's not.
Their documentation isn't helping me to decide (even though it refers to fairly familiar terminology)
Perhaps a deep dive into coding might help.
But from the point of view of someone not familiar with Go, there is nothing to give me confidence that,
short of a six month training period in Go and Escher, I would have any sort of traction with it.
I think it needs better documentation (perhaps there is some somewhere else?)
Regards,
--Bert