semantics
free variables