reconstructing type system