{
  "id": "@typed/fx#Fx.unwrap",
  "canonicalId": "@typed/fx/Fx#unwrap",
  "symbol": {
    "id": "@typed/fx#Fx.unwrap",
    "packageName": "@typed/fx",
    "moduleName": ".",
    "exportName": "Fx.unwrap",
    "kind": "constant",
    "signatures": [
      "export declare const unwrap: <A = never, E = never, R = never, E2 = never, R2 = never>(effect: Effect.Effect<Fx<A, E, R>, E2, R2>) => Fx<A, E | E2, R | R2>;"
    ],
    "summary": "Unwraps an Effect that produces an Fx into a single Fx.",
    "sections": {
      "Why": "`unwrap` defers choosing or acquiring a producer until observation, while\nkeeping the Effect and the selected Fx in one typed push pipeline.",
      "Execution and cardinality": "Each observation runs `effect` once. On success, the produced Fx is observed\nand all of its values are forwarded in order. The acquisition Effect itself\nemits no value, and the inner is never started if acquisition fails.",
      "Ownership and lifetime": "Acquisition and inner failures are forwarded and both environments remain in\nthe returned type. `unwrap` does not create a Scope or hide one: interruption\nstops whichever phase is active, and any resourceful Effect or inner Fx must\nexpose and receive its own `Scope` requirement."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { Fx } from \"@typed/fx\"\nimport { Effect } from \"effect\"\n\nconst selected = Fx.unwrap(\n  Effect.succeed(Fx.fromIterable([\"ready\", \"running\"]))\n)"
      }
    ],
    "relations": [],
    "source": {
      "file": "packages/fx/src/Fx/combinators/unwrap.ts",
      "line": 42
    },
    "since": "1.0.0",
    "category": "Generator composition"
  },
  "exposure": {
    "recordKind": "declaration",
    "id": "@typed/fx#Fx.unwrap",
    "packageName": "@typed/fx",
    "packageVersion": "2.0.0-beta.7",
    "moduleName": ".",
    "consumerSpecifier": "@typed/fx",
    "exportName": "Fx",
    "qualifiedName": "Fx.unwrap",
    "declarationKey": "declaration:8750bbf054dfd9c92b449afd",
    "family": "variable",
    "signatures": [
      "export declare const unwrap: <A = never, E = never, R = never, E2 = never, R2 = never>(effect: Effect.Effect<Fx<A, E, R>, E2, R2>) => Fx<A, E | E2, R | R2>;"
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/unwrap.ts",
        "start": {
          "line": 42,
          "column": 14
        },
        "end": {
          "line": 50,
          "column": 4
        }
      }
    ],
    "aliases": [
      "@typed/fx/Fx#unwrap"
    ],
    "isAlias": true,
    "parentId": "@typed/fx#Fx",
    "static": false,
    "importedFrom": "declaration:8750bbf054dfd9c92b449afd"
  },
  "declaration": {
    "declarationKey": "declaration:8750bbf054dfd9c92b449afd",
    "name": "unwrap",
    "family": "variable",
    "facets": [
      {
        "family": "variable",
        "syntaxKind": "VariableDeclaration",
        "signatures": [
          "export declare const unwrap: <A = never, E = never, R = never, E2 = never, R2 = never>(effect: Effect.Effect<Fx<A, E, R>, E2, R2>) => Fx<A, E | E2, R | R2>;"
        ],
        "typeParameters": [],
        "sourceSpans": [
          {
            "file": "packages/fx/src/Fx/combinators/unwrap.ts",
            "start": {
              "line": 42,
              "column": 14
            },
            "end": {
              "line": 50,
              "column": 4
            }
          }
        ],
        "static": false,
        "readonly": false,
        "optional": false
      }
    ],
    "signatures": [
      "export declare const unwrap: <A = never, E = never, R = never, E2 = never, R2 = never>(effect: Effect.Effect<Fx<A, E, R>, E2, R2>) => Fx<A, E | E2, R | R2>;"
    ],
    "typeParameters": [],
    "summary": "Unwraps an Effect that produces an Fx into a single Fx.",
    "sections": {
      "Why": "`unwrap` defers choosing or acquiring a producer until observation, while\nkeeping the Effect and the selected Fx in one typed push pipeline.",
      "Execution and cardinality": "Each observation runs `effect` once. On success, the produced Fx is observed\nand all of its values are forwarded in order. The acquisition Effect itself\nemits no value, and the inner is never started if acquisition fails.",
      "Ownership and lifetime": "Acquisition and inner failures are forwarded and both environments remain in\nthe returned type. `unwrap` does not create a Scope or hide one: interruption\nstops whichever phase is active, and any resourceful Effect or inner Fx must\nexpose and receive its own `Scope` requirement."
    },
    "examples": [
      {
        "language": "ts",
        "code": "import { Fx } from \"@typed/fx\"\nimport { Effect } from \"effect\"\n\nconst selected = Fx.unwrap(\n  Effect.succeed(Fx.fromIterable([\"ready\", \"running\"]))\n)"
      }
    ],
    "sourceSpans": [
      {
        "file": "packages/fx/src/Fx/combinators/unwrap.ts",
        "start": {
          "line": 42,
          "column": 14
        },
        "end": {
          "line": 50,
          "column": 4
        }
      }
    ],
    "since": "1.0.0",
    "category": "Generator composition"
  }
}
