# RFC Mentoring Opportunity: Permit \`?\` in \`main()\`

**URL:** <https://internals.rust-lang.org/t/rfc-mentoring-opportunity-permit-in-main/4600>\
**Category:** Uncategorized\
**Created:** [January 12, 2017, 2:51pm UTC](https://internals.rust-lang.org/t/rfc-mentoring-opportunity-permit-in-main/4600 "2017-01-12T14:51:35Z")\
**Posts on this page:** 1\
**Showing post:** 52

<div class="post-metadata">

**Author:** ![nikomatsakis](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/nikomatsakis/32/5410_2.png) [@nikomatsakis](https://internals.rust-lang.org/u/nikomatsakis)\
**Post date:** [January 19, 2017, 9:51am UTC](https://internals.rust-lang.org/t/rfc-mentoring-opportunity-permit-in-main/4600/52 "2017-01-19T09:51:38Z")

</div>

> [@withoutboats](#):
>
> The idea I like is defining a new trait and having main be allowed to return any type that implements that trait.

Agreed.

> [@withoutboats](#):
>
> std could define it for () and Result\<(), Box\<Error\>\>.

Probably `Result<(), T>` where `T: Error` but yes.

> [@withoutboats](#):
>
> Adding the Fallible alias seems like a fine idea but orthogonal to this change.

I agree it's orthogonal _but_ it seems important to reaching the final goal of pretty examples on the front page. =) Without it though we can at least get examples that show off best practices, I guess.

---

_[View the full topic](https://internals.rust-lang.org/t/rfc-mentoring-opportunity-permit-in-main/4600)._
