Subtyps
Subtyps are a concept used in various fields, most notably in object-oriented programming and type theory, to describe a relationship between two types. A type A is considered a subtype of type B if any instance of type A can be used wherever an instance of type B is expected. This is often referred to as the Liskov Substitution Principle.
In programming, this typically means that a subtype inherits properties and behaviors from its supertype. If
For example, if `Dog` is a subtype of `Animal`, a function designed to `makeSound(animal: Animal)` should work
The concept of subtyping is crucial for building flexible and extensible software systems. It enables code