balance chemical equations, written just as an exercise
Uses plain error handling via return value and containers as auto-reallocating caches.
Given that it doesn't make use of floating point arithmetic, the number of solvable problems depends on the type of the solve template function. Use BigInts to avoid integer overflow excetions