Do you use Credo?

Yeah, switching to a dynamic language takes some time getting used to. However, I don’t think that excessive simulation of typing is the solution. For me it’s usually enough if public functions are specced. Assuming the code is split into reasonably sized modules with well-defined responsibilities, I can usually quickly figure out the type of some variable/parameter in a private function.

I agree. Take a look at gradualizer and the Elixir wrapper called gradient (also check out this thread).

2 Likes