# Collective bikeshed of \`#\[marker\] trait Foo { .. }\`

**URL:** <https://internals.rust-lang.org/t/collective-bikeshed-of-marker-trait-foo/8509>\
**Category:** language design\
**Created:** [October 3, 2018, 12:22am UTC](https://internals.rust-lang.org/t/collective-bikeshed-of-marker-trait-foo/8509 "2018-10-03T00:22:04Z")\
**Posts on this page:** 1\
**Showing post:** 19

<div class="post-metadata">

**Author:** ![scottmcm](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/scottmcm/32/2355_2.png) [@scottmcm](https://internals.rust-lang.org/u/scottmcm)\
**Post date:** [October 3, 2018, 7:58am UTC](https://internals.rust-lang.org/t/collective-bikeshed-of-marker-trait-foo/8509/19 "2018-10-03T07:58:47Z")

</div>

> [@CAD97](#):
>
> For the purpose of discussion, how (does?) this property interact with `auto` traits? I don’t think it influences the name, but it might influence the choice of attribute versus keyword.

`auto trait`s are not implicitly `#[marker]`, but can be. Positive and negative `impl`s still conflict:

```rust
error[E0119]: conflicting implementations of trait `Foo` for type `u32`:
 --> src/lib.rs:7:1
  |
6 | impl<T:Copy> Foo for T {} 
  | ---------------------- first implementation here
7 | impl !Foo for u32 {}
  | ^^^^^^^^^^^^^^^^^ conflicting implementation for `u32`

```

> **[Rust Playground](https://play.rust-lang.org/?gist=f3593a204bd2f62d6490a3527775e38c&version=nightly&mode=debug&edition=2015)**
>
> A browser interface to the Rust compiler to experiment with the language

---

_[View the full topic](https://internals.rust-lang.org/t/collective-bikeshed-of-marker-trait-foo/8509)._
