Create a Type.Pool module specifically for variable pools. Start using
a state transformer to thread the pool and errors through.
Update changelog for pretty printing
Create type pools, have an organized model of state to flow through
the State Transformer during constraint solving and variable unification.