TODO Optimize tag into bitvector to save space Can make an automatic get() method like std::tuple (C++)