It is common in more complex parsing implementations to require "tokens" to have a type associated with them. Right now, IToken has no ability to be typed in the root interface because all preliminary parsing implementations haven't needed it. This is a short coming of the API.