Typeinfo exercise 20 reimplement 1
Typeinfo exercise 20 reimplement 2