# make

Creates a new `RefResult` from a Result, `Effect`, or `Fx`.

## Signatures

```ts
export declare function make<A, ResultE, Err = never, R = never>(initial: Result.Result<A, ResultE> | Effect.Effect<Result.Result<A, ResultE>, Err, R> | Fx.Fx<Result.Result<A, ResultE>, Err, R>, successEq?: Equivalence<A>, failureEq?: Equivalence<ResultE>): Effect.Effect<RefResult<A, ResultE, Err, R>, never, R | Scope.Scope>;
```

## Why

Creates result state with equality suited to that Effect data type, so unchanged values do not
produce redundant pushed updates.

## Ownership and lifetime

The creation Effect requires Scope. It owns initializer acquisition, live source subscriptions,
and cleanup; source failures and services stay on reads and pushes.

## Examples

```ts
import { Effect, Result } from "effect"
import * as RefResult from "@typed/fx/RefResult"

const program = Effect.gen(function* () {
  const value = yield* RefResult.make(Result.succeed(42))
  const current = yield* value
  console.log(current) // { _tag: "Success", success: 42 }
})
```
