A returns a new E that holds a value "a" of Type A.
B returns a new E that holds a value "b" of type B.
Pack returns an E that contains eotjer a value "a" of type A (if index == 'a'), a value "b" of type B (if index == 'b'), or panics if index is not 'a' or 'b'.