One of the most powerful features of the Julia language is the ability to parameterize types. It is actually quite difficult to find any Julia package that does not use this feature. Parametric types allow the software designer to generalize types, and let the Julia runtime automatically compile to the concrete version based on the specified parameters.
Let's take a look at how this works with composite and abstract types.