Start work on the type system so we can support more than just builtin numeric
types