Note that a type system with polymorphic and dependent type system is far more powerful than generics or simple templates. In my opinion monomorphization is rather bad, because it creates a lot of compile time bloat while still not being very expressive from a type system point of view.