commented out: always generate conc+elem instead of cons
prepare for graph stack
refactor to use abstract Val class