formal type system