diff --git a/.changeset/cuddly-actors-tie.md b/.changeset/cuddly-actors-tie.md
new file mode 100644
index 0000000..042e8dc
--- /dev/null
+++ b/.changeset/cuddly-actors-tie.md
@@ -0,0 +1,5 @@
+---
+"@effect-rx/rx": patch
+---
+
+add Result.getOrElse
diff --git a/packages/rx/src/Result.ts b/packages/rx/src/Result.ts
index fca5c74..7c17b6c 100644
--- a/packages/rx/src/Result.ts
+++ b/packages/rx/src/Result.ts
@@ -4,6 +4,7 @@
import * as Cause from "effect/Cause"
import * as Data from "effect/Data"
import * as Exit from "effect/Exit"
+import type { LazyArg, LazyArg } from "effect/Function"
import { dual, identity } from "effect/Function"
import * as Option from "effect/Option"
import { type Pipeable, pipeArguments } from "effect/Pipeable"
@@ -266,6 +267,15 @@ export const value = (self: Result): Option.Option => {
return Option.none()
}
+/**
+ * @since 1.0.0
+ * @category accessors
+ */
+export const getOrElse: {
+ (orElse: LazyArg): (self: Result) => A | B
+ (self: Result, orElse: LazyArg): A | B
+} = dual(2, (self: Result, orElse: LazyArg): A | B => self._tag === "Success" ? self.value : orElse())
+
/**
* @since 1.0.0
* @category accessors