The whole issue of the role of types is one of my current meditations. Python&#x27;s duck typing is great for getting out of your way and getting on with your job.  Usually.  I&#x27;m just starting to work through some Julia toturials so that I can experiment with multiple dispatch.  But I think the way to teach reasoning about types is to learn you some Haskell. I can&#x27;t see doing a lot of production programming in Haskell today, but I think learning Haskell is a good mind-stretching exercize (just as learning Prolog was, back when Prolog mattered.)