scala existential types ast tree