Но когда я какой-то тайпкласс реализую, что я там скажу?
вот ты приходишь просто и говоришь лист теперь функтор с такой-то функцией map, а не как в c# где всё гвоздями прибито, если Select то только для IEnumerable, и на выходе только он, а не сам лист.