re-implement presence conditions for erlang with DNF
add a test for multiply-defined macro expansion