# Try

`import { Try } from "destack:ops";`

Protocol for values that work with `?`, `??`, and postfix `!`.

```ds title="Try"
export newtype interface Try {
    Output;
    Residual;
    static fromOutput(output: this.Output): this;
    branch(): ControlFlow<this.Residual, this.Output>;
}
```

[language/library/src/ops/try.ds:38:50](https://github.com/destack-sh/destack/blob/main/language/library/src/ops/try.ds#L38-L50)

## Members

### `Output`

The output value produced when evaluation continues.

### `Residual`

The residual value propagated when evaluation breaks.

### `static fromOutput(output: this.Output): this`

Construct this type from an output value.

### `branch(): ControlFlow<this.Residual, this.Output>`

Branch into continuing or breaking control flow.
