A type system for object models is described that supports subtypes and allows overloading of relation names. No special features need be added to the modelling language; in particular, there are no casts, and the meaning of an object model can be understood without reference to types. Type errors are associated with expressions that are irrelevant, in the sense that they can be replaced by an empty relation without affecting the value of their enclosing formula. Rels computed with an abstract interpretation that is relatively insensitive to standard algebraic manipulations, so the user is not forced into particular syntactic forms.