fn main() -> ! {
    let ideas = Mind::init(MAX_CAPACITY);
    let people = Net::people::default();
    let tools = FossToolBox::default();

    ideas
        .map(|idea| match idea {
            Idea(Solo, i) => Some(i),
            Idea(Collaborative, i) => {
                Some(people.position(|&p| p.ethos == i.ethos)),
            }
            _ => None,
        })
        .take_while(|&idea| tools.any(|t| t.implements(idea)));

    loop {
        ideas.next().unwrap().apply();
    }
}
Tale of the Impenetrable City