BTW I'm not sure about the conversion from `is(T == uint)` to `is(T : uint)`.  I think the whole point of that template constraint is to make sure that the data passed _really is a `uint`_, not just that it's implicitly convertible.  The point is that the precision of the word size really matters.