type parsing for C finally (mostly) works