Practice of using a type system — in Ruby via Literal, at runtime — to make invalid object states unrepresentable. Rather than validating ad hoc, constrain properties at the object boundary (e.g. a Coordinates object whose latitude is a Float in -90..90) so that once an object exists, its state is guaranteed valid. Joel Drapper argues this is strictly better than silent corruption: raising early is preferable to deleting thousands of records while the system happily continues.