# E0034

Warning name: `implicit_use_builtin`

Implicit use of definitions from `moonbitlang/core/builtin`.

This warning is emitted when code implicitly relies on definitions from
`moonbitlang/core/builtin`. Consider importing the desired APIs explicitly to
make dependencies clearer.

## Erroneous example

Here `Null` is inferred as the `Json::Null` constructor from
`moonbitlang/core/builtin` without an explicit type or qualification:

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

## Suggestion

Make the builtin dependency explicit and qualify the constructor, or otherwise
add enough type information that the code no longer relies on implicit builtin
constructor inference.

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