The code in this paper are written in Idris2.
The type is influecents by the value. For example we can have the length of a list inside the type. We can have functions that depend on types.
In the Iris2, how does it store this tree? One idea: We have a value that describes the kind of the constructor, values and pointers to pointer to another constructor. We want to end up having a solution that uses buffers, which is very fast.
The format they have chosen is a hex file. The header describes the way the data is build up.
Given some fixed point over data we have location and a datatype.
The type family singleton represents all types that are described uniquely by their variables.
Now we can a view function that takes a type an a pointer and returns what is stored in the location. The main constructor is the (#) to combine serialization processes.
In this language it is impossible to have faulty pointer arithmetic, because the datatype does not allow it.