prog.cpp:9: error: new types may not be defined in a return type
prog.cpp:9: note: (perhaps a semicolon is missing after the definition of ‘BloodRainPersonage’)
prog.cpp:9: error: cannot convert ‘BloodRainPersonage (*)(BloodRainPersonage (*)())’ to ‘BloodRainPersonage*’ in initialization