Type Alias SumExponents<A, B>

SumExponents: A extends 0
    ? B extends 0
        ? 0
        : B extends 1
            ? 1
            : B extends -1
                ? -1
                : B extends 2
                    ? 2
                    : B extends -2
                        ? -2
                        : B extends 3
                            ? 3
                            : B extends -3
                                ? -3
                                : B extends 4
                                    ? 4
                                    : B extends -4 ? -4 : (...) extends (...) ? (...) : (...)
    : A extends 1
        ? B extends 0
            ? 1
            : B extends 1
                ? 2
                : B extends -1
                    ? 0
                    : B extends 2
                        ? 3
                        : B extends -2
                            ? -1
                            : B extends 3
                                ? 4
                                : B extends -3
                                    ? -2
                                    : B extends 4 ? 5 : (...) extends (...) ? (...) : (...)
        : A extends -1
            ? B extends 0
                ? -1
                : B extends 1
                    ? 0
                    : B extends -1
                        ? -2
                        : B extends 2
                            ? 1
                            : B extends -2
                                ? -3
                                : B extends 3
                                    ? 2
                                    : B extends -3 ? -4 : (...) extends (...) ? (...) : (...)
            : A extends 2
                ? B extends 0
                    ? 2
                    : B extends 1
                        ? 3
                        : B extends -1
                            ? 1
                            : B extends 2
                                ? 4
                                : B extends -2
                                    ? 0
                                    : B extends 3 ? 5 : (...) extends (...) ? (...) : (...)
                : A extends -2
                    ? B extends 0
                        ? -2
                        : B extends 1
                            ? -1
                            : B extends -1
                                ? -3
                                : B extends 2
                                    ? 0
                                    : B extends -2 ? -4 : (...) extends (...) ? (...) : (...)
                    : A extends 3
                        ? B extends 0
                            ? 3
                            : B extends 1
                                ? 4
                                : B extends -1
                                    ? 2
                                    : B extends 2 ? 5 : (...) extends (...) ? (...) : (...)
                        : A extends -3
                            ? B extends 0
                                ? -3
                                : B extends 1
                                    ? -2
                                    : B extends -1 ? -4 : (...) extends (...) ? (...) : (...)
                            : A extends 4
                                ? B extends 0
                                    ? 4
                                    : B extends 1 ? 5 : (...) extends (...) ? (...) : (...)
                                : A extends -4
                                    ? B extends 0 ? -4 : (...) extends (...) ? (...) : (...)
                                    : A extends 5
                                        ? (...) extends (...) ? (...) : (...)
                                        : (...) extends (...) ? (...) : (...)

Type Parameters