yarrow.segmented.operations

class yarrow.segmented.operations.Operations(xn: AbstractFiniteFunction, s_type: AbstractIndexedCoproduct, t_type: AbstractIndexedCoproduct)

A flat array representation of a sequence of (typed) operations. Since polymorphic operations have variable types, in order to get a completely flat representation, we need to store them in segmented arrays. The Operations type is therefore a 3-tuple:

Operation labels:

xn         : N            → Σ₁

Source types (encoded as an AbstractIndexedCoproduct):

s_type
    sources: N            → None
    values : sum(sources) → Σ₀

Target types (encoded as an AbstractIndexedCoproduct):

t_type
    sources: N            → None
    values : sum(sources) → Σ₀
xn: AbstractFiniteFunction
s_type: AbstractIndexedCoproduct
t_type: AbstractIndexedCoproduct