Implement tuple Ixed instances without Template Haskell