effect-tree
    Preparing search index...

    Variable $match

    $match: {
        <
            A,
            B,
            C,
            D,
            Cases extends
                {
                    Both: (args: { _tag: "Both"; left: B; right: A }) => any;
                    Left: (args: { _tag: "Left"; left: B }) => any;
                    Right: (args: { _tag: "Right"; right: A }) => any;
                },
        >(
            cases: Cases & { [K in string | number | symbol]: never },
        ): (
            self:
                | { _tag: "Left"; left: B }
                | { _tag: "Right"; right: A }
                | { _tag: "Both"; left: B; right: A },
        ) => Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>;
        <
            A,
            B,
            C,
            D,
            Cases extends
                {
                    Both: (args: { _tag: "Both"; left: B; right: A }) => any;
                    Left: (args: { _tag: "Left"; left: B }) => any;
                    Right: (args: { _tag: "Right"; right: A }) => any;
                },
        >(
            self:
                | { _tag: "Left"; left: B }
                | { _tag: "Right"; right: A }
                | { _tag: "Both"; left: B; right: A },
            cases: Cases & { [K in string | number | symbol]: never },
        ): Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>;
    }

    Type Declaration

      • <
            A,
            B,
            C,
            D,
            Cases extends
                {
                    Both: (args: { _tag: "Both"; left: B; right: A }) => any;
                    Left: (args: { _tag: "Left"; left: B }) => any;
                    Right: (args: { _tag: "Right"; right: A }) => any;
                },
        >(
            cases: Cases & { [K in string | number | symbol]: never },
        ): (
            self:
                | { _tag: "Left"; left: B }
                | { _tag: "Right"; right: A }
                | { _tag: "Both"; left: B; right: A },
        ) => Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>
      • Type Parameters

        • A
        • B
        • C
        • D
        • Cases extends {
              Both: (args: { _tag: "Both"; left: B; right: A }) => any;
              Left: (args: { _tag: "Left"; left: B }) => any;
              Right: (args: { _tag: "Right"; right: A }) => any;
          }

        Parameters

        • cases: Cases & { [K in string | number | symbol]: never }

        Returns (
            self:
                | { _tag: "Left"; left: B }
                | { _tag: "Right"; right: A }
                | { _tag: "Both"; left: B; right: A },
        ) => Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>

      • <
            A,
            B,
            C,
            D,
            Cases extends
                {
                    Both: (args: { _tag: "Both"; left: B; right: A }) => any;
                    Left: (args: { _tag: "Left"; left: B }) => any;
                    Right: (args: { _tag: "Right"; right: A }) => any;
                },
        >(
            self:
                | { _tag: "Left"; left: B }
                | { _tag: "Right"; right: A }
                | { _tag: "Both"; left: B; right: A },
            cases: Cases & { [K in string | number | symbol]: never },
        ): Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>
      • Type Parameters

        • A
        • B
        • C
        • D
        • Cases extends {
              Both: (args: { _tag: "Both"; left: B; right: A }) => any;
              Left: (args: { _tag: "Left"; left: B }) => any;
              Right: (args: { _tag: "Right"; right: A }) => any;
          }

        Parameters

        • self:
              | { _tag: "Left"; left: B }
              | { _tag: "Right"; right: A }
              | { _tag: "Both"; left: B; right: A }
        • cases: Cases & { [K in string | number | symbol]: never }

        Returns Unify<ReturnType<Cases["Left" | "Right" | "Both"]>>