Move to a design based on a tower of types for better performance.
Move to generating types and associated arithmetic with metaprogramming.