# XO0900: typed hole report

Warning. `???` is a typed hole, valid anywhere an expression is expected. `xo check` succeeds and reports, for each hole, the expected type, the effects in scope, and in scope values or functions that fit. `xo build` rejects programs with holes; `xo run --holes` and `xo test --holes` allow them and fault if a hole is evaluated. Holes let an agent write a type correct skeleton first and fill it in steps. See core 3.7.

## Example

```xo
fn retry_after(base: Duration, attempt: Int) -> Duration {
  ???
}
```

## Fix

```xo
fn retry_after(base: Duration, attempt: Int) -> Duration {
  base * attempt
}
```

Run `xo explain XO0900` for this text in a terminal, or see
[section 10.6 of the specification](../../spec/core/#106-diagnostic-codes).

