In programming languages, a type system is a logical system that comprises variables, expressions, functions, or modules. These types, every one in its own, form categories of sets. The main purpose of this system is, of course, to reduce possibilities for bugs defining interfaces and consistency checks.

The reason why we have objects in any category is to mark the origin and the end of morphisms.

Objects and morphisms are both primitive concepts. But somehow morphisms are more important. Tho it required millennia in thoughts and strive for abstraction the idea is very similar…