A simply typed lambda calculus with extensible annotation types