Контракт (система типов)
Контракт — это набор свойств и методов, присущих тому или иному типу, а также поведение этих свойств и методов. Другими словами, контракт — это те обязательства, которые берет на себя система, когда программист оперирует экземпляром некоторого типа.