STR
Example from libcore:
#![crate_type = "lib"]
#![feature(associated_types, lang_items)]
#![no_std]
#[lang = "sized"] trait Sized {}
#[lang = "not"]
trait Not {
    type Result;
    fn not(self) -> Self::Result;
}
trait Int: Not<Result=Self> {
    fn count_ones(self) -> uint;
    fn count_zeros(self) -> uint {
        // neither works
        (!self).count_ones()
        //~^ error: type `<Self as Not>::Result` does not implement any method in scope named `count_ones`
        //self.not().count_ones()
    }
}Version
84f5ad8
cc @nikomatsakis