adds denotational semantics to expressions