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();
}
}