Learning to Solve Abstract Reasoning Problems with Neurosymbolic Program Synthesis and Task Generation