Looks nicely designed, but are lists really implemented as linked lists? That's surely going to be very slow.
This was purely for simplicity (they can be implemented in a couple of lines of code with algebraic data types). Simplicity of implementation is certainly not my priority, just a short term drive, so it will be revisited in the near future.
Thanks!