I'm probably missing something… but, should this be defined only if there is an `A => A  @@@ T`? What if tagging is injective?