What does having `total2` add?  In particular, why do we want it to be a class (i.e., why can't we just use `sigT`), and why do we want it to be inconvertible with `sigT` (i.e., why isn't this `Class total2 {T} {P : T -> Type} := tpair2 : sigT P`)?