Best way to implement functors: inheritance VS CRTP? | Hacker News Reader