1. 21

  2. 1

    Dialyzer in Elixir is less useful than in Erlang. Main culprit for me is the fact that Enum is a black hole for typing system 1. Types representing collections from Erlang stdlib can be all accept hints about stuff that is inside.

    1. 1

      Yes – and while this is true, it makes finding workflows where Dialyzer actually helps all the more important. We can always hope that the future will bring improvements in the area of Elixir, as systems get older and people come to appreciate the value of a type system during large refactorings.

      1. 1

        I would add to that, that the way structs work in Elixir (an Erlang map with a __struct__ field) basically disqualifies usage of some more sophisticated Dialyzer flags (like overspecs for instance). Nevertheless, there’s still a lot of value in maintaining correct typespecs and running Dialyzer on CI, despite steep learning curve.