Let us consider a class as a collection of objects that have the same internal structure: the same variables, methods and body. Then we can use the term type for a collection of objects that have certain common properties with respect to their behaviour. In other words, whereas a class groups together the objects that have been built in the same way, a type comprises a collection of objects that can be used in the same way.

-- America, 1989

A type is a behaviour specification that may be used to generate instances having the behaviour.
A language is strongly typed if type compatibility of all expressions representing values can be determined from the static program representation at compile time.

-- Wegner. Dimensions of object-based language design. OOPSLA 1987

Type systems should have the property that expressions having the same denotation always have the same type .
In polymorphic type systems ... we lose the simple intuitive notion of a type as a classifier of collections of values and must replace this notion by a richer but inevitably less intuitive notion of types as classifiers of contexts for evaluation.

-- Wegner. The Object-Oriented Classification Paradigm . 1987