# Error code E0152

A lang item was redefined.

Erroneous code example:

    #![allow(unused)]
    #![feature(lang_items)]

    fn main() {
    #[lang = "owned_box"]
    struct Foo<T>(T); // error: duplicate lang item found: `owned_box`
    }

Lang items are already implemented in the standard library. Unless you are writing a free-standing application (e.g., a kernel), you do not need to provide them yourself.

You can build a free-standing crate by adding `#![no_std]` to the crate attributes:

    #![no_std]

See also this section of the Rustonomicon.