public int BinarySearch([NotNull] TEnum[] arr, TEnum val) => EnumCastingUtil <TEnum, TBacker> .BinarySearch(arr, val);
public void Sort([NotNull] TEnum[] arr) => EnumCastingUtil <TEnum, TBacker> .Sort(arr);
public int GetHashCode(TEnum obj) => EnumCastingUtil <TEnum, TBacker> .CastToBacker(obj).GetHashCode();
public int Compare(TEnum lhs, TEnum rhs) => EnumCastingUtil <TEnum, TBacker> .CastToBacker(lhs) .CompareTo(EnumCastingUtil <TEnum, TBacker> .CastToBacker(rhs));
public bool Equals(TEnum lhs, TEnum rhs) => //cast to backing type then compare EnumCastingUtil <TEnum, TBacker> .CastToBacker(lhs).Equals(EnumCastingUtil <TEnum, TBacker> .CastToBacker(rhs));