diff --git a/source/greater-than-or-equal.d.ts b/source/greater-than-or-equal.d.ts
index b99d36ab5..e9a7615d2 100644
--- a/source/greater-than-or-equal.d.ts
+++ b/source/greater-than-or-equal.d.ts
@@ -19,6 +19,12 @@ GreaterThanOrEqual<1, 5>;
*/
export type GreaterThanOrEqual = number extends A | B
? never
- : A extends B ? true : GreaterThan;
+ : A extends number // For distributing `A`
+ ? B extends number // For distributing `B`
+ ? A extends B
+ ? true
+ : GreaterThan
+ : never // Should never happen
+ : never; // Should never happen
export {};
diff --git a/test-d/greater-than-or-equal.ts b/test-d/greater-than-or-equal.ts
index 828d57efd..422fe8d2b 100644
--- a/test-d/greater-than-or-equal.ts
+++ b/test-d/greater-than-or-equal.ts
@@ -27,6 +27,7 @@ expectType>({} as boolean);
expectType>({} as boolean);
expectType>({} as boolean);
expectType>({} as boolean);
+expectType>({} as boolean);
expectType>(true);
expectType>(true);
diff --git a/test-d/less-than.ts b/test-d/less-than.ts
index 37b968575..805f21e30 100644
--- a/test-d/less-than.ts
+++ b/test-d/less-than.ts
@@ -26,6 +26,7 @@ expectType>({} as boolean);
expectType>({} as boolean);
expectType>({} as boolean);
expectType>({} as boolean);
+expectType>({} as boolean);
expectType>(false);
expectType>(false);