eval({call E1 E2}) = if eval(E1) = {fun {x} Ef} then eval({with {x E2} Ef}) else error!