Exploiting Modularity During Program Synthesis