Rejigged type system