Worked out type system