# E0068

Warning name: `declaration_unimplemented`

Declaration is unimplemented.

This warning is emitted when a `declare` item is left without a matching
implementation in the same package. It can apply to declared functions, methods,
abstract types, and implementation relations.

Leaving a declaration unimplemented is useful while designing an API, but it can
also mean that callers can see a contract that the package never actually
provides. Enable this warning when you want declaration stubs to be temporary.

## Erroneous example

```{literalinclude} /sources/error_codes/0068_error/top.mbt
:language: moonbit
```

## Suggestion

Provide an implementation, or remove the declaration if the API is no longer
needed:

```{literalinclude} /sources/error_codes/0068_fixed/top.mbt
:language: moonbit
```
