Why Erlang Dialyzer cannot find type error in the following code?
问题 free_vars_in_dterm({var, V}) -> {var, V}; obviously cannot type check, however, dialyzer says everything is OK. $ dialyzer *erl Checking whether the PLT ~/.dialyzer_plt is up-to-date... yes Proceeding with analysis... done in 0m0.66s done (passed successfully) Code is as below: -module(formulas). -type formulas() :: {predicate(), [dterm()]} | {'~', formulas()} | {'&', formulas(), formulas()} | {'|', formulas(), formulas()} | {'->', formulas(), formulas()} | {'<->', formulas(), formulas()} | {