For all problems concerning eliminating, counting, or grouping duplicates, see
http://www.jenitennison.com/xslt/grouping
It's easy in XPath 2.0, of course:
count(distinct-values(something/@type))
You can't do it the way you suggest, by incrementing counters: functional languages don't work that way.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference