Rework FiniteField to use the type system a little more.