A Type System for Record Concatenation and Subtyping Abstract: We define an extension of a second-order type system with records, subtyping and record concatenation. This system can model the most important concepts of object-oriented languages. The novelty in our approach is that concatenation is only permitted if the types on common fields agree. We give examples of how object-oriented concepts can be modeled and show how the system can be translated to a type system without subtyping.