Core Types
Arrow Types
Arrows.AbstractArrow — Type.An Arrow of I inputs and O outputs
Semantics of this model
Arrow
There are a finite number of primitive arrows,
PrimArrowEach
parr::PrimArrowis unique and uniquely identifiable by a name, globallyThere are a finite number of composite arrows,
CompArrowEach
CompArrowis unique and uniquely identifiable byname(arr)globally
Port
An
ArrowhasIandOinput / output portsThese
I+OPorts are theboundaryports of aCompArrowPorts are namedname(port)and uniquely identifiable w.r.t. ArrowPorts onArroware ordered1:I+Obut ordering is independent of whther is_in_port or is_out_port
SubArrow
A composite arrow contains a finite number of components:
SubArrowsEach
SubArrowis unique and uniquely identifiable by name within its parentEach
SubArrowcontains a reference to anotherPrimArroworCompArrowWe can
dereference aSubArrowto retrieve thePrimArroworCompArrowA
SubPortis a port ofSubArrowWe can
dereference it to get the corresponding port on CompArrow / PrimArrowa
SubPortwhich is on aSubArrowis not a boundary
Value
All
Ports that are connected share the sameValueOften it is useful to talk about these
ValueSetindividuallya
Valueis a set ofPorts such that there exists an edge between eachport ∈ Value, i.e. a weakly connected component
Trace
SubArrows can refer to CompArrow's, even the same CompArrow
In execution and other contexts, it is useful be refer to nested
Arrows.CompArrow — Type.A Composite Arrow: An Arrow composed of multiple Arrows
PrimArrowPorts
Arrows.Port — Type.An interface to an Arrow
Arrows.Props — Type.Set of Properties
SubTypes
Arrows.SubArrow — Type.A component within a CompArrow
Arrows.SubPort — Type.A Port on a SubArrow