IO
IOs produce or consume data of a specific type, and are where data enters/leaves a flow or function (more generally referred to as "processes").
name
- used to identify an input or output in connections to/from ittype
(optional) - An optional Data type for this IO
Default inputs and outputs
If a function only has one input or one output, then naming that input/output is optional. If not named, it is referred to as the default input. Connections may connect data to/from this input/output just by referencing the function.
Generic Inputs or Outputs
If an input or output has no specific Data type specified, then it is considered generic
and can
take inputs of any type. What the function does, or what outputs it produces, may vary depending on the input
type at runtime and should be specified by the implementor of the function and understood by the flow programmer
using it.
Example: A print function could accept any type and print out some human readable representation of all of them.
Example: An add
function could be overloaded and if provided two numbers it would sum them, but if provided
two strings it could concatenate them.