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,
PrimArrow
Each
parr::PrimArrow
is unique and uniquely identifiable by a name, globallyThere are a finite number of composite arrows,
CompArrow
Each
CompArrow
is unique and uniquely identifiable byname(arr)
globally
Port
An
Arrow
hasI
andO
input / output portsThese
I+O
Ports are theboundary
ports of aCompArrow
Port
s are namedname(port)
and uniquely identifiable w.r.t. ArrowPort
s onArrow
are ordered1:I+O
but ordering is independent of whther is_in_port or is_out_port
SubArrow
A composite arrow contains a finite number of components:
SubArrow
sEach
SubArrow
is unique and uniquely identifiable by name within its parentEach
SubArrow
contains a reference to anotherPrimArrow
orCompArrow
We can
deref
erence aSubArrow
to retrieve thePrimArrow
orCompArrow
A
SubPort
is a port ofSubArrow
We can
deref
erence it to get the corresponding port on CompArrow / PrimArrowa
SubPort
which is on aSubArrow
is not a boundary
Value
All
Port
s that are connected share the sameValue
Often it is useful to talk about these
ValueSet
individuallya
Value
is a set ofPort
s 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 Arrow
s
PrimArrow
Ports
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