Interesting @lambda_conf talk showing how Dialyzer ('discrepancy analyzer') offers gradual typing for Erlang and Elixir: https://youtu.be/FXCMiQWnWu0
It's a neat type system: it uses 'success typing', (it assumes you're correct) and exotic features like ranges and non-empty lists!
Related Posts
A cute systemd feature to get the system clock roughly correct: if the system time is before the compilation time of the systemd binary, it moves the clock forward to that time!
https://lwn.net/Articles/714355/
Really cute approach to reporting type errors: when there's a type error, show an example of a runtime error that the type check has prevented!
Data-Driven Techniques for Type Error Diagnosis https://escholarship.org/uc/item/59s4h4pv
Playing with optional type signatures in Python, I realise that the return type is the most important to me.
I'd much rather have a function with only a return type instead of a function with only parameter types. It's often quick to add too.