For `Algebra`, the function pipe is defined atop a generative array -- the objective being out of memory data that can be populated by function calls.
I.E. your first function call reads in the data from the file, you have a segmented algebra feeding system -- or you're using this Algebra system on a server that needs to load data into memory temporarily. This allows you to automate that sort of thing.
This would be done by creating a function that reads the file into the Array and then calling functions to mutate it on top of it.
For some more context on the package and what it does, I did actually write an article about this:
https://chifi.dev/algia-my-new-way-to-handle-data-bf10b46bc714
My eventual plan is to return to this package, and build it into an AlgebraFrames package: https://github.com/ChifiSource/AlgebraFrames.jl
Alas, I have a lot of projects -- but I plan to engage with a `0.1.0` release of this immediately after finishing `Olive` `0.1.0` -- my next (main ecosystem) package after I get this documentation website up and running. But I am excited for the things this will allow me to do -- ORM, for example, is something I plan to use this for :)
So in this case, the `Algebra` type is actually representative of the data in an Array -- not just a function pipeline. The function pipeline is applied atop the data in the array :). `length` is the `n` vertical dimensions of a `Vector`. It's all automatically done through the API with the `:` syntax.