Prepare Template Metaprogramming utilities
Add function to iterate types