title: Where are Rust's boolean and other primitive types implemented?
body: <p>I was going through the code behind some of the basic types in Rust, e.g. the <a href="https://github.com/rust-lang/rust/blob/1.10.0/src/libcore/option.rs" rel="noreferrer">pleasantly simple implementation</a> of <code>Option&lt;T&gt;</code> or the <a href="https://github.com/rust-lang/rust/blob/1.10.0/src/libcore/tuple.rs" rel="noreferrer">weird macro magic</a> behind <code>tuple</code> and I was able to find all of the types that I wanted in <a href="https://github.com/rust-lang/rust/tree/1.10.0/src/libcore" rel="noreferrer">libcore</a>. All except for one - <code>bool</code>. I couldn't find it anywhere else either.</p>
  
  <p>Where is the code behind <code>bool</code> in Rust? I know this is not the most novel type out there, but I was surprised I could not find it.</p>
  
  <p>Thanks to the answers by Francis and rodrigo, I noticed that the code I found for other primitives was just their traits and related macros, but not actual implementations.</p>
  
  <p>The Rust book states that the primitives <a href="https://doc.rust-lang.org/book/primitive-types.html" rel="noreferrer">are built-in to the language</a>, but I'm not satisfied with this explanation. When were they built in? Can it be traced to the time when the Rust compiler was first built with Rust or did it happen when it was still built in OCaml? Does any relevant code exist?</p>