add const folding; not implete