Hi all,
I'm currently working on a new generics module in plain C.
This will eventually provide a unified interface to all Flint/Arb/Antic/Calcium types (and others). It is also fully recursive, so one can construct, say, matrices of polynomials over polynomials with Arb coefficients directly in C (and then easily switch to Calcium coefficients when the arithmetic needs to be done exactly). It's designed from the ground up to deal rigorously with
things like inexact (e.g. interval) rings, semi-decidable rings, non-integral domains, etc.
Long term it could also potentially allow us to get rid of some code duplication in these libraries (replacing duplicated algorithms with calls to the generic implementations, where performance is the same), and it could be used to add things like power series, sparse matrices and multivariate polynomials for more types, plus more memory-efficient variants for small finite fields etc.
Still very much a work in progress. I will try to do a longer writeup in the near future; for now, feel free to look around.
Fredrik