scala type quantification