The Manifests. A Manifest is class whose instances are objects representing types. Since these instances are objects, you can pass them around, store them, and generally call methods on them. With the support of implicit parameters, it becomes a very powerful tool
In a recent piece called Strong Typing vs. Strong Testing, noted programmer and author Bruce Eckel makes an argument that dynamically typed languages such as Python are superior to statically typed languages such as Java and C++. I've done quite a bit of Python and Java programming, and even a little C++, so I can appreciate his position, but I think the conclusion goes too far. Whether Python is more productive than C++ or Java is one thing, whether static typing in general should be abandoned is quite another.
H. Moniz, J. Leitão, R. Dias, J. Gehrke, N. Preguiça, and R. Rodrigues. Proceedings of the 26th International Conference on World Wide Web, page 263--272. Republic and Canton of Geneva, Switzerland, International World Wide Web Conferences Steering Committee, (2017)