add more tests
gen_c: better symbol names
add reference code to ease tracking the changes
gen_c: remove simple indirections
gen_c: factorize another pattern