Learning meta-programming concepts