Update .gitignore
Promote higher-order functions using defunctionalization
Support defunctionalization in singletons