I have to say I am a little confused about the aim of the library. The whole point of the data frame abstraction - as I understand it - is that they are a columnar representation of data, usually in memory. What you are describing here seems more like lazy sequences. Most implementation I know of data frames have eager operations. For instance, I would expect `df.map(x => x.age)` to be a constant time operation (because the `age` column is already in memory).
In what ways does this library differ from other lazy sequence implementations such as [lazy](https://github.com/petermora/nimLazy), [iterutils](https://github.com/def-/nim-iterutils), or [mangle](https://github.com/baabelfish/mangle)? I do not want to sound dismissive - I am happy to see this library, but I am not sure what is the direction it wants to take.