person p; p.talk();                    
empty

p.become(Student); p.talk();
OOP

p.become(Employer); p.talk();
$$

p.become(new adult_person); p.talk();
interesting

p.become(Student); p.talk();
OOP (new student)

p.become(&p); p.talk();
$$ (old role)

p.become(Person); // initial state

slide: Becoming one's self