As per the internet, a generalist is someone who "knows a little" about a lot of things. And a specialist is someone who "knows a lot" about a few things. This idea is fundamentally flawed.
Knowledge cannot be measured in quantities. It must be measured in terms of qualities.
Consider a "generalist." If you know two things, it does not mean you know only "half of each." For example, the title "Software Engineer" is a broad category. So we use the world "generalist" to explain away the lack of depth in our definitions.
In case of a specialist, what does knowing "a lot" about something mean? It's the quality of information, not the quantity, that matters. Many people get wrongly pigeonholed as "Ruby on Rails" engineers or "DBAs" just because they happen to know it well in addition to many other things. What's wrong with learning many things?
The right way is to be able to do (not just know) as many things as you'd like. One part of the world might see you as a Haskell engineer, while another as a Database engineer, but from your own perspective, you might just be an interested hacker.