Experience from Developing the Dialyzer: A Static Analysis Tool Detecting Defects in Erlang Applications